Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по Инф_ЛХФ_11-12.docx
Скачиваний:
6
Добавлен:
22.04.2019
Размер:
6.44 Mб
Скачать

Оператор присваивания

Оператор присваивания значения переменной использует символ “=“ и имеет следующий синтаксис:

<имя переменной> = <арифметическое выражение >

Приведем пример использования оператора присваивания:

х = 5*a + log(a + 0.5)-a^3

Ввод и вывод информации.

Первое, что нужно в программе – это определение способа, которым пользователь будет вводить информацию. Существует множество способов пользовательского ввода.

Один из них –диалоговый ввод.

Диалоговый ввод

Может осуществляться с помощью функции InputBox, которая при выполнении в программе выводит на экран свое собственное окно. Например, при выполнении следующей строки программного кода:

a= InputBox(“Введите фамилию”)

на экране появится диалоговое окно, в котором будет записан текст, заключенный в кавычки с курсором в полосе ввода значения. После чего необходимо ввести запрашиваемое в окне значение и нажать клавишу ввода или щелкнуть мышью по кнопке “Ок”.

При этом возвращаемое функцией InputBox значение имеет тип string. Поэтому для диалогового ввода значения числовой переменной в программе необходимо дополнительно преобразовать получаемое значение к числовому типу функцией преобразования типов данных от строкового к числовому - функцией Val. Например, для ввода значения числа 5,25 для переменной b необходимо записать следующую строку программного кода:

b=Val(InputBox(“Введите значение b”))

Во многих случаях VBA может интерпретировать тип данных и перестраивать его по смыслу использования переменных при обработке информации, если тип данных не определен оператором dim. Однако всегда предпочтительнее заранее определить требуемый тип данных, т.к. интерпретация типа VBA может оказаться и некорректной, и привести к неправильным результатам.

При вводе вещественного числа целая часть отделяется от дробной точкой.

Ввод числа 1,210-6 осуществляется как 1.2Е-6

Ввод из ячейки листа Excel

Присвоение переменной x значения из ячейки листа Excel может осуществляться с помощью методов Range и Cell, которые возвращают ссылку на отдельную ячейку:

x = Worksheets("Лист1").Range("A1")

или

x = Worksheets("Лист1").Cells(1, 1)

где – Worksheets("Лист1") – рабочий лист Excel

Range("A1") – ссылка на ячейку A1(абсолютная ссылка)

Cells(1, 1) – для указания адреса ячейки используют номер строки и номер столбца (относительная ссылка)

Пример:

Private Sub CommandButton5_Click()

x = Worksheets("Лист1").Range("A1")

MsgBox x

End Sub

Вывод результатов

Для вывода результатов в VBА существуют различные способы.

Наиболее просто вывести значение переменной можно с помощью функции вывода MsgBox, которая при выполнении активизирует свое собственное окно сообщений на экране. Например, значение переменной b можно вывести на экран в специальное генерируемое этой функцией окно, записав в программе строку

MsgBox(b)

Для продолжения работы программы необходимо нажать клавишу ввода либо щелкнуть мышью на кнопке “Ok”.

С помощью функции MsgBox можно выводить и произвольные текстовые сообщения на экран, при этом выводимое сообщение должно быть заключено в кавычки. Например, в результате выполнения строки кода

MsgBox(«Деление на нуль»)

на экране появится следующее окно сообщений:

Число, выводимое в окно можно форматировать (указывать количество знаков до и после запятой). Для этого используется функция Format(x, “##.##”), где x переменная, ##.## – формат числа.

MsgBox (Format(x, “##.##”))

Для вывода нескольких значений в одно окно используется операция конкатенации &, например,

MsgBox ("Значение x=" & x)

MsgBox (("Значение x=" & _ Format(x, “##.##”))

Можно осуществлять вывод в ячейку листа Excel используя абсолютную ссылку:

Worksheets("Лист1").Range("A3") = x

или относительную:

Worksheets("Лист1").Cells(5, 1) = x

Пример1:

Private Sub CommandButton6_Click()

x = 10

Worksheets("Лист1").Range("A3") = x

x = 5

Worksheets("Лист1").Cells(5, 1) = x

End Sub

Пример 2:

Для x=1,5 a=3,75 m=0.510-4 вычислить выражения:

Оформим Лист2 согласно образцу:

Введем в ячейку G24 следующую формулу (используя функции Excel):

=0,5*КОРЕНЬ((C17*C18)*ABS(1-C19*C19))

А в ячейку H24:

=COS(LN(ABS(G24))/(2+G24))

Для кнопки «Вычислить» напишем следующий текст программы:

Private Sub CommandButton1_Click()

Dim x As Single, a As Single, m As Single, w As Single, z As Single

x = Worksheets("Лист2").Range("c17")

a = Worksheets("Лист2").Range("c18")

m = Worksheets("Лист2").Range("c19")

w = 0.5 * Sqr(x * a * Abs(1 - m * m))

z = Cos(Log(Abs(w)) / (2 + w))

Worksheets("Лист2").Range("g25") = w

Worksheets("Лист2").Range("h25") = z

End Sub

Здесь ввод и вывод результата организован из ячеек рабочего листа и в ячейки рабочего листа.

Если использовать относительные ссылки, то текст программы будет следующим:

Private Sub CommandButton1_Click()

Dim x As Single, a As Single, m As Single, w As Single, z As Single

x = Worksheets("Лист1").Cells(17, 3)

a = Worksheets("Лист1").Cells(18, 3)

m = Worksheets("Лист1").Cells(19, 3)

w = exp(x) * a * (1 - m ^ 2)

z = Sin(w / (2 + w))

Worksheets("Лист1").Cells(24, 7) = w

Worksheets("Лист1").Cells(24, 8) = z

End Sub

Можно организовать ввод и по-другому – с клавиатуры, а вывод – в диалоговое окно. Тогда текст программы будет следующим:

Private Sub CommandButton2_Click()

Dim x As Single, a As Single

Dim m As Single, w As Single

Dim z As Single

x = Val(InputBox(“Введите x “))

a = Val(InputBox(“Введите a”))

m= Val(InputBox(“Введите m”))

w = 0.5*Sqr(x*a*abs(1 - m * m))

z = cos(log(w)/( 2 + w))

MsgBox (“w=” & w )

MsgBox (“z=” & z )

End Sub

Для очистки ячеек рабочего листа используют метод Clear объектов Cells() и Range().

Для применения метода к объекту нужно записать

Объект.Метод

Т.о. программный код кнопки «Очистить» будет следующий:

Private Sub CommandButton4_Click()

Worksheets("Лист2").Range("g25").Clear

Worksheets("Лист2").Range("h25").Clear

End Sub

Если необходимо очистить все ячейки рабочего листа, то нужно записать:

Private Sub CommandButton4_Click()

Worksheets("Лист2").Сells.Clear ‘очистка всех ячеек

End Sub

Свойства ячеек можно менять программно, например, для изменения шрифта, выводимого в ячейки Листа Excel свойства:

Worksheets("Лист1").Range("a2").Font.Name = "Times New Roman"

Worksheets("Лист1").Range("a2").Font.Size = 14

Отладка программы

При возникновении ошибки во время запуска программы (например, деление на 0) происходит прерывание выполнения программы и вывод сообщения о типе ошибки. При этом можно выбрать режим остановки программы End или перехода в окно отладки программы Debug, при этом строка с ошибкой или процедура, где возникла ошибка, будет подсвечена желтым цветом.

Для исправления ошибки нужно прервать программу, нажав кнопку Reset на ПИ редактора VBA, исправить ошибку и запустить программу заново. Или исправить ошибку, затем продолжить выполнение программы, нажав кнопку Continue(Run).

Сохранение проекта Excel: Кнопка MS Office\Сохранить как…\Книга Excel с поддержкой макросов