Как сделать таблицу умножения в excel vba
Предлагаю коллегам несколько лабораторных работ по реализации учебных мини-проектов в среде Visual Basic:
Лабораторная работа № 1. Программа “Счастливый номер”. Программа “Таблица умножения”.
Лабораторная работа № 2. Программа “Вычисление НДС”.
Лабораторная работа № 3. Программа “Времена года”.
Лабораторная работа № 4. Программа “Подарки On-line”.
Лабораторная работа № 5. Программа “Угадай-ка”.
Лабораторная работа № 1
1. Программа “Счастливый номер”Задание: разработать программу, в которой на форме выводятся четыре случайных числа из интервала от 0 до 9. Если среди них есть число 7, то появляется картинка с изображением денег (рис. 1.1).
Указания по выполнению
1. Изменить заголовок формы (на панели свойств изменить значение свойства Caption формы на Счастливый номер).
2. Разместить на форме пять надписей, две кнопки и объект Image (Рисунок). Значения свойств объектов установить в соответствии с таблицей.
Примечание. При создании надписей Lbl2–Lbl5 надо создать первую из них, установить необходимые значения свойств, после чего трижды скопировать ее. При запросе программы на создание массива элементов управления ответить отрицательно.
3. В первой строке программного кода в разделе General Declarations записать оператор Option Explicit . Данный оператор контролирует использование только объявленных (описанных) переменных, что позволяет избежать многих ошибок.
4. Запрограммировать процедуру обработки события “Щелчок на кнопке с надписью Выход” на завершение программы:
Private Sub CmdExit_Click()
После этого сделать указанную кнопку так называемой “кнопкой отмены” (которая реагирует на нажатие клавиши ). Для этого надо изменить значение ее свойства Cancel на True.
5. Запрограммировать процедуру обработки события “Щелчок на кнопке с надписью Вращать” на появление на надписях Lbl2, Lbl3, Lbl4, Lbl5 случайных чисел из интервала от 0 до 9, а также на проверку того факта, есть ли среди них число 7. Если такое число есть, то надо вывести изображение рисунка, изначально скрытое:
Private Sub CmdSpin_Click()
'Вывод случайных чисел
Lbl2.Caption = Int(Rnd * 10)
Lbl3.Caption = Int(Rnd * 10)
Lbl4.Caption = Int(Rnd * 10)
Lbl5.Caption = Int(Rnd * 10)
If Lbl2.Caption = 7 Or Lbl3.Caption = 7 Or
Lbl4.Caption = 7 Or Lbl5.Caption = 7 Then
Задание для самостоятельной работы
1. Добавить на форму еще две надписи для чисел (Lbl6 и Lbl7) с такими же свойствами, что и имеющиеся, разместив их в одной строке.
2. Изменить диапазон выбора случайных чисел — от 1 до 5, а “счастливым” сделать набор, в котором сумма первых трех чисел равнялась сумме трех последних.
Примечание. Поскольку значение свойства Caption надписей Lbl2, Lbl3, …, Lbl7 — это текст, то при нахождении суммы его надо перевести в число с помощью функции Val (т.е. слагаемое будет, например, не Lbl2.Caption , а Val(Lbl2.Caption)) .
2. Программа “Проверка знаний таблицы умножения”Указания по выполнению
1. Изменить заголовок формы на Таблица умножения.
2. Разместить на форме необходимые объекты. Значения свойств объектов установить в соответствии с таблицей (см. с. 19).
3. Включить проверку переменных ( Option Explicit ).
4. Запрограммировать процедуру обработки события “Щелчок на кнопке с надписью Закончить” на завершение программы и сделать ее кнопкой отмены.
5. Запрограммировать процедуру обработки события “Щелчок на кнопке с надписью Начать”:
1) обеспечить появление случайных чисел из интервала от 1 до 9 на надписях Lbl2 и Lbl3;
2) сменить надпись на кнопке Начать на Продолжить:
3) очистить текстовое поле для ввода ответа и сделать его доступным (свойство Enabled ):
4) сделать доступной кнопку с надписью Проверить:
6. Запрограммировать процедуру обработки события “Щелчок на кнопке с надписью Проверка”:
Private Sub CmdTest_Click()
If Txt.Text = Lbl1.Caption * Lbl2.Caption Then
MsgBox "Молодец!", vbOKOnly + vbInformation, "Проверка"
MsgBox "Неправильно!", vbOKOnly + vbCritical, "Проверка"
Задание для самостоятельной работы
1. Изменить приложение и программный код таким образом, чтобы на форму выдавались и проверялись примеры на сложение двух целых чисел.
* При изменении названий некоторых элементов управления и их свойств материал статьи может быть использован и применительно к системе программирования Borland Delphi. — Прим. ред.
** Проверка корректности введенного значения с точки зрения его типа не проводится.
Как это часто бывает, одно и тоже действие в Microsoft Excel можно выполнить разными способами. Взять, хотя бы, таблицу умножения. Построить ее мы можем, во-первых, путем ввода соответствующих формул на пересечении заголовков строк и столбцов. Причем, чтобы не вводить формулу умножения в каждую ячейку таблицы, можно это сделать один раз, с использованием абсолютных и относительных ссылок. Например, формула в ячейке В2 будет выглядеть так: =$А2*В$1. После этого можно растянуть указанную формулу за правый нижний угол на всю таблицу. Рассмотренный пример предполагал, что в колонке А у нас содержатся числа (множители) - заголовки таблицы умножения. Аналогичные множители содержатся в первой строке нашей таблицы, как показано на рисунке ниже.
Знак "$" в формуле =$А2*В$1 означает, что данную координату ячейки мы фиксируем, то есть она не будет изменяться при растягивании формулы на весь диапазон. Такая координата ячейки называется абсолютной.
Сейчас же мы рассмотрим учебный пример построения таблицы умножения на рабочем листе Microsoft Excel с применением элементов программирования на Visual Basic for Applications.
Пользователь изначально задает на рабочем листе заголовки строк и столбцов будущей таблицы умножения (числа, которые будут перемножаться между собой), как показано на первом рисунке выше. Причем, их количество может быть произвольным. Затем запускается макрос VBA, который рассчитывает результат умножения для всех возможных пар множителей, заполняя при этом таблицу.
Итак, для построения таблицы умножения в Excel с помощью языка программирования Visual Basic for Applications (VBA) смотрите наш видеоурок.
Поскольку число строк и столбцов таблицы умножения может быть произвольным и не известно заранее в программе, для заполнения ее расчетных значений используется цикл DO. LOOP. Эта конструкция позволяет обрабатывать произвольное число строк и столбцов, пока мы не дойдем до края таблицы, то есть, пока не выполнится определенное условие.
Как сообщалось на нашем сайте ранее, с помощью VBA вы можете реализовать любой алгоритм, например, поиск минимального элемента массива.
Арифметические операторы используются для выполнения многих знакомых арифметических операций, использующих вычисление числовых значений, представленных литералами, переменными, другими выражениями, вызовами функций и свойств и констант. Кроме того, классификация с помощью арифметических операторов — это операторы сдвига в битах, которые действуют на уровне отдельных битов операндов и сдвигаются их битовые шаблоны влево или вправо.
Арифметические операции
можно добавить два значения в выражение вместе с оператором +или вычесть одно из другого с помощью оператора-operator (Visual Basic), как показано в следующем примере.
отрицание также использует оператор-Operator (Visual Basic), но только с одним операндом, как показано в следующем примере.
при умножении и разделении используются оператор * и оператор (Visual Basic)соответственно, как показано в следующем примере.
В возведение в степень используется оператор ^, как показано в следующем примере.
Целочисленное деление выполняется с помощью оператора \ (Visual Basic). Целочисленное деление Возвращает частное, то есть целое число, представляющее количество, которое делитель может разделить на делимое, без учета остатка. Делитель и делимое должны быть целочисленными типами ( SByte , Byte , Short , UShort UInteger Integer . Long и ULong ) для этого оператора. Сначала необходимо преобразовать все остальные типы в целочисленный тип. В следующем примере показано целочисленное деление.
Арифметическая операция деления выполняется с помощью оператора MOD. Этот оператор возвращает остаток от деления делителя на делимое на целое число раз. Если и делитель, и делим являются целочисленными типами, возвращаемое значение является целочисленным. Если делитель и делимые являются типами с плавающей запятой, возвращаемое значение также будет плавающей запятой. Следующий пример демонстрирует эту ситуацию.
Попыток деления на ноль
В подразделениях с плавающей запятой, включающих Double тип данных, исключение не создается, а результатом является член класса, представляющий NaN , PositiveInfinity или NegativeInfinity , в зависимости от делимого. В следующей таблице перечислены различные результаты попытки деления Double значения на ноль.
Тип данных делимого | Тип данных делителя | Делимое значение | Результат |
---|---|---|---|
Double | Double | 0 | NaN (не является математически определенным числом) |
Double | Double | > 0 | PositiveInfinity |
Double | Double | < 0 | NegativeInfinity |
Bit-Shift операции
Операция сдвига в битах выполняет арифметический сдвиг для битового шаблона. Шаблон содержится в операнде слева, а операнд справа указывает количество позиций для сдвига шаблона. Можно сдвинуть шаблон вправо с помощью оператора или влево с помощью оператора.
Тип данных операнда шаблона должен быть SByte , Byte , Short , UShort Integer ,, UInteger , Long или ULong . Тип данных операнда суммы сдвига должен быть или должен быть Integer расширен до Integer .
Арифметические сдвиги не являются циклическими, то есть биты, сдвинутые за пределы результата, не переносятся на другой конец. Позиции битов, освобожденные сдвигом, устанавливаются следующим образом:
0 для арифметического сдвига влево
0 для арифметического сдвига вправо положительного числа
0 для арифметического сдвига вправо неподписанного типа данных ( Byte , UShort , UInteger , ULong )
1 для арифметического сдвига вправо отрицательного числа ( SByte , Short , Integer или Long )
В следующем примере значение сдвигается Integer влево и вправо.
Арифметические сдвиги никогда не создают исключений переполнения.
Битовые операции
В дополнение к логическим операторам Not Or And . и Xor также выполняют побитовую арифметическую операцию при использовании числовых значений. Дополнительные сведения см. в разделе "битовые операции" в логических и побитовых операторах в Visual Basic.
Безопасность типов
Обычно операнды должны иметь один и тот же тип. Например, если вы делаете сложение с Integer переменной, то следует добавить ее в другую Integer переменную, а результат также следует присвоить переменной типа Integer .
Одним из способов обеспечения хорошей строгой типизации кода является использование оператора Option строго. если задано Option Strict On , Visual Basic автоматически выполняет строго Option Strict On преобразования. Например, если попытаться добавить Integer переменную в Double переменную и присвоить ей значение Double , операция выполняется обычным образом, так как Integer значение может быть преобразовано в Double без потери данных. Типы-ненадежные преобразования, с другой стороны, вызывают ошибку компилятора с Option Strict On . Например, при попытке добавить Integer переменную в Double переменную и присвоить ей значение Integer , результатом ошибки компилятора является то, что Double переменная не может быть неявно преобразована в тип Integer .
однако если задать Option Strict Off , то Visual Basic допускает неявные сужающие преобразования, хотя они могут привести к непредвиденной утрате данных или точности. По этой причине рекомендуется использовать Option Strict On при написании рабочего кода. Для получения дополнительной информации см. Widening and Narrowing Conversions.
Пример 1. Написать на Visual Basic программу расчета таблицы умножения
На рабочем листе Excel пользователь задает структуру желаемой таблицы умножения (формирует заголовки строк и столбцов, выделенных желтым цветом), как показано на рисунке ниже. По нажатию на кнопку "Рассчитать" происходит автозаполнение таблицы умножения.
Количество строк и столбцов таблицы умножения заранее не известно и может быть произвольным. Последовательность чисел в заголовках строк и столбцов (которые подлежат перемножению) также может быть произвольной.
Программа, заполняя таблицу умножения расчетными значениями, использует синтаксис:
Do while
…
Loop
Скачивание файла EXCEL с решением данной задачи возможно после оплаты в размере 49 руб. или 9 грн. путем перечисления указанной суммы с платежной карты. После совершения операции, вы увидите уведомление: "Оплата прошла успешно". Нажав кнопку "Вернуться на сайт", вы перейдете к окну со ссылкой на файл EXCEL. Нажимайте кнопку
49 руб. | 9 грн. |
На рабочем листе Excel пользователь выделяет мышкой произвольный диапазон ячеек (на рисунке выбран диапазон B3:E16) и нажимает кнопку "Рассчитать".
После этого выделенная область заполняется таблицей умножения. Первая колонка и первая строка выделенной области содержат числа, которые необходимо перемножить.
Скачивание файла EXCEL с решением данной задачи возможно после оплаты в размере 49 руб. или 9 грн. путем перечисления указанной суммы с платежной карты. После совершения операции, вы увидите уведомление: "Оплата прошла успешно". Нажав кнопку "Вернуться на сайт", вы перейдете к окну со ссылкой на файл EXCEL. Нажимайте кнопку
Чтобы настроить данные, введите числа от 1 до 10 в ячейки с A2 по A11 и снова в ячейки с B1 по K1.
Есть также интересный способ вставки чисел в ячейки с помощью функции ТРАНСПОРТИРОВКА:
- Введите числа от 1 до 10 в ячейки с A2 по A11.
- Выберите диапазон B1: K1 и введите следующую формулу в строке формул.
- Нажмите Ctrl + Shift + Enter, потому что это формула массива (необязательно в Excel 365 или версиях Excel после 2022 года).
Теперь у нас есть все необходимое для нашей таблицы умножения. Ниже мы продемонстрируем два способа заполнения таблицы умножения.
Таблица умножения с использованием смешанных ссылок
Таблица умножения может быть создана с использованием смешанных ссылок на ячейки, где одна ссылка на строку или столбец заблокирована, а другая - нет.
Используйте эту формулу в ячейке B2:
Это заблокирует строку заголовка для числа и умножит строку столбца заголовка и вернет результат.
Затем мы скопируем и вставим эту формулу во весь диапазон:
- Скопируйте ячейку B2 (Ctrl + C).
- Выберите диапазон B2: K11
- Нажмите Ctrl + V вставить формулу
Таблица умножения с использованием формулы массива
Метод формулы массива также очень прост.
Вам просто нужно выбрать диапазон B1: K1, вставить формулу в строку формул и нажать Ctrl + Shift + Enter (Excel 2022 и более ранние версии):
Таким образом будет создана вся таблица умножения.
Создайте таблицу умножения в Google Таблицах
Формула для создания таблицы умножения в Google Таблицах работает точно так же, как и в Excel:
Читайте также: