Ввод-вывод данных с использованием рабочей книги и листов MS Excel
Значения данных, использующихся в программе можно хранить в ячейках MS Ecxel. Этот вариант является альтернативой вводу данных с экрана и выводу их на экран.
Хранение данных в ячейках удобно тем, что они видны не только во время выполнения программы, но и сохраняются и доступны для просмотра и анализа в любой момент времени. Этот способ позволяет также оформить задачу в более удобной форме, обозначив названиями входные и выходные данные, указать необходимые сведения для них, например, единицы измерения.
Для того, чтобы получить доступ к ячейке необходимо использовать служебное слово Range, после него в круглых скобках в двойных «английских» кавычках указывается адрес ячейки, например Range(“A1”).
Данные из ячеек можно использовать непосредственно в выражениях или присвоив эти значения переменным. Второй вариант является наиболее предпочтительным, т.к. обращение к ячейке производится один раз, а затем используется переменная.
Ввод данных из ячейки в переменную
Синтаксис:
Переменная = Range(“ячейка”)
| Пример:
Value = Range(“A1”)
где Value – имя переменной
| Вывод данных из переменной в ячейку
Синтаксис:
Range(“ячейка”) = Переменная
| Пример:
Range(“A1”) = Value
где Value – имя переменной
|
Рассмотрим примеры.
Пример 1. Взять число из ячейки А1, найти остаток от деления этого числа на 3, результат поместить в ячейку А2
Sub test()
Dim val As Single
Dim rez As Single
val = Range("A1")
rez = val Mod 3
Range("A2") = rez
End Sub
| Sub test()
Dim val As Single
val = Range("A1")
Range("A2") = val Mod 3
End Sub
| Sub test()
Range("A2") = Range("A1") Mod 3
End Sub
| Все три примера иллюстрируют выполнение одних и тех же действий. В первом примере данные из ячейки А1 помещаются в переменную val, затем производится деление с возвращением остатка и результат заносится в переменную rez. Значение переменной rez помещается в ячейку А2.
Во втором примере, данные из ячейки А1 помещаются в переменную val, затем производится деление с возвращением остатка и результат заносится в ячейку А2.
В третьем примере обходится и вовсе без переменных. В ячейку А2 сразу помещается результат деления с возвращением остатка данных из ячейки А1 на 3.
Операторы выбора
При написании макросов, как и любых других программных кодов, часто приходится выполнять те или иные, но различные действия в зависимости от какого-либо условия, например, если требуется вычислить значение функции y = 1/x, то очевиден следующий алгоритм действий:
если x ≠ 0 , то y = 1/x, иначе “вывод сообщения об ошибке”.
Наиболее простые конструкции осуществления выбора – это If … Then и If … Then … Else.
Выражение If … Then предоставляет возможность реализации простого ветвления исполняемой программы с одним разветвлением. Конструкция If … Then … Else реализует разветвление на две ветви, в зависимости от истинности условия.
Рассмотрим более подробно конструкцию If … Then. Блок-схема этой конструкции представлена на рисунке 38.
Рис. 38. Блок-схема конструкции If .. Then
Эта инструкция имеет две синтаксические формы, наиболее простая из них:
If условие then инструкция VBA.
Условие – булевое выражение. Все выражение должно быть написано в одной строке. Если значение условия истинно, то выполняется инструкция VBA, следующая в той же строчке за словом Then. Далее управление программой переходит к следующей строке. Если значение условия ложно, то выражение после слова Then не выполняется и управление сразу переходит к следующей строке программы. После слова Then может располагаться несколько инструкций, которые следует разделять двоеточием :. Количество инструкций не ограничено, но они должны умещаться в одной строке.
Вторая форма инструкции If … Then называется блоком If. Эта инструкция отличается от предыдущей тем, что ее расположение может занимать несколько строк:
If условие Then
Инструкции VBA
End If
Ключевые слова End If служат знаком окончания блока и должны располагаться на следующей строке после последней инструкции VBA блока If… Then. Инструкций VBA может быть несколько, и они могут располагаться в несколько строк, они могут и вовсе отсутствовать.
Инструкция If…Then … Else. Блок-схема этой инструкции показана на рисунке 39.
Рис. 39. Блок-схема инструкции If..Then..Else
Эта инструкция позволяет выбрать одну из двух ветвей алгоритма, после чего продолжается последовательное выполнение программы. Как и инструкция If … Then, инструкция If…Then…Else имеет однострочную и блоковую структуры.
Синтаксис однострочной структуры:
If условие then инструкции_VBA1 else инструкции_VBA2
Если значение условия истинно, то выполняются инструкции_VBA1, иначе – инструкции_VBA2
Синтаксис блоковой структуры:
If условие then
инструкции_VBA1
Else
инструкции_VBA2
End if
Работа строчной и блоковой структур одинакова, однако при использовании блоковой структуры отсутствуют ограничения на количество инструкций, а так же она легче читается.
Пример: в рабочем листе Excel в ячейке A1 содержится некое число. Требуется определить четное оно или нет и выдать соответствующее сообщение.
Sub ran_ge()
If (Range("A1") mod 2) = 0 then
MsgBox “число четное”
else
MsgBox “число нечетное”
End If
End Sub
Не нашли, что искали? Воспользуйтесь поиском по сайту:
©2015 - 2025 stydopedia.ru Все материалы защищены законодательством РФ.
|