- •2. Блок ввода-вывода.
- •3. Логический блок.
- •4 . Блоки начала и конца блок-схем
- •5.Соединительные блоки
- •Однострочный if.
- •Блочный if.
- •Как назначить макрос кнопке размещенной на рабочем месте так, чтобы щелчок на этой кнопке заставлял выполнить нужный макрос?
- •Создание собственного кода программы.
- •Первая программа на vba. Воспользуемся третьим сценарием. По пунктам запишем наши действия.
- •Как запустить нашу программу из редактора vbа на выполнение?
- •Как из окна редактора попасть на рабочий лист?
- •Где хранятся программы?
- •Циклические алгоритмы.
- •Рассмотрим циклы for … next
- •Найти произведение целых чисел от к до м с шагом 2
- •Циклы с условием do … loop
- •Продолжение знакомства с редактором vba
- •Модули и процедуры.
- •Процедура – подпрограмма
- •Процедура – функция
- •Создание процедур-подпрограмм..
- •Процедура подпрограммы.
- •Как вызвать процедуры из других программ?
- •Передача аргументов в подпрограммы(по ссылке и по значению). Способ1 -Передача по ссылке.
- •Способ2.-Передача по значению.
- •Необязательные параметры в подпрограммах.
- •Процедура функция.
- •Объявления переменных и их области видимости
- •Объявление переменных.
- •Область видимости переменной
- •2) Переменная уровня модуля ( уровня контейнера )
- •Работаем с приложением Excel и его объектами.
- •Объектная модель Excel.
- •Объект Application( приложение в целом).
- •Объект Workbook(рабочая книга)
- •Основные методы объекта workbook
- •Объект Worksheet (Рабочий лист).
- •Основные методы объекта worksheet.
- •Основные свойства рабочих листов
- •Объект Range (диапазон)
- •Основные свойства объекта Range
- •7) Font - шрифт
- •Циклы вида With … Еnd With.
- •Пример.
- •Основные методы объекта Range
- •С объектом Selection можно работать точно так, как с объектом Range: те же свойства и те же методы.
- •Функция Format()
- •Еще раз о функциях val, inputbox Функция Val()
- •Функция InputBox().
- •Задача: проверка на «пустоту».
- •Отладка программ (debugging) Виды ошибок:
- •1)Синтаксические;
- •2)Во время выполнения программы;
- •3)Логические.
- •Точки останова(breakpoints).
- •Пошаговое выполнение программы.
- •Работа со справкой.
- •Окно отладки (Immediate).
- •Окно контрольных значений
- •Массивы
- •Нединамические массивы.
- •Динамические массивы.
- •Ввод, вывод одномерных массивов.
- •Введение массива с помощью функции InputBox (ввод «вручную»).
- •2)Введение массива с помощью генератора случайных чисел
- •Вывод массива.
- •1)Вывод массива в окно отладки
- •2)Вывод массива на рабочий лист
- •3)Вывод массива в окно сообщений
- •Пример1. Найти максимальный элемент в массиве
- •Пример2. Сортировка (упорядочивание) одномерного массива.
- •Двумерные массивы (таблицы или матрицы).
- •Ввод /вывод двумерного массива.
- •1)Ввод с помощью функции Input Box (ввод вручную)
- •2)Ввод с помощью генератора случайных чисел
- •Особенности ввода-вывода двумерных массивов на рабочий лист при работе с vba (excel)
- •Ввод массива
- •Вывод массива на рабочий лист.
- •Обращение к массивам при работе с подпрограммами.
- •Vvod b,n,m,k ‘вызов подпрограммы ввода массива
- •Примеры решения задач, связанных с двумерными массивами.
- •Задача1.Найти сумму элементов под побочной диагональю квадратной матрицы размера n×n.
- •Функции, определяющие границы индексов массивов.
- •Элементы визуального программирования.
- •Панель управления «формы» .
- •Экранные формы.
- •Для того, чтобы вставить форму в наше приложение необходимо выполнить команды:
- •Свойства формы.
- •Этапы разработки визуальных программ.
- •2) Написание кода.
- •Первая визуальная программа «Здравствуй ,мир!»
- •Первый этап ( настраивание свойств формы и элементов управления).
- •Второй этап ( написание кода).
- •Как запустить наше приложение из окна редактора vba?
- •Как сделать так, чтобы наша форма запускалась с рабочего листа?
- •Программа “Курс доллара”.
- •События формы.
- •Переключатель (Option Button)
- •Флажок или индикатор (Check Box)
- •Полоса прокрутки (ScrollBar)
- •Пример1. Программа «скорость».
- •Пример 2. «Утоляем жажду».
- •Элемент управления «рисунок» (Image)
- •Элемент управления «список» (ListBox)
- •Поле со списком, или комбинированный список(Combobox)
- •Пример использования.
- •Static – объявление переменной статической.
- •Дополнительные элементы управления.
- •Работа с файлами последовательного доступа
- •Открыть файл последовательного доступа можно в трёх режимах:
- •Открытие файла.
- •Закрытие файла ( оператор close).
- •Формат оператора input:
- •Операторы вывода в файл print и write
- •Формат функции eof
- •Input#1, X ‘считываем очередной элемент массива
- •Литература.
Однострочный if.
Простейшая структура однострочного IF:
If <логическое выражение> then <действие>
Вся информация размещается в одной строке. Если <логическое выражение> принимает значение «истина», то выполняем <действие> и переходим на следующую строку кода. Если <логическое выражение> принимает значение «ложь», то сразу , не выполняя <действия> переходим на следующую строку кода.
Пример.
y=5
If x>3 then y=2
Z=4+y
В данном примере, если x>3 то переменной Z будет присвоено значение 6 (4+2), а иначе, т.е. когда x<=3, значение 9 (4+5).
Отметим, что в VBA допускается в одной строке записывать несколько операторов, разделённых символом «:». Например, x=x+3: t=x*y : z= x/(x-y).
Полная структура однострочного IF:
If <логическое выражение> then <действие1> else <действие2>
Данный оператор действует также, как функция ЕСЛИ в EXCEL:
если <логическое выражение> > принимает значение «истина», то выполняем <действие1> и переходим на следующую строку кода. Если <логическое выражение> принимает значение «ложь», то выполняем <действие2> и переходим на следующую строку кода.
Пример.
If x>3 then y=x+4: z= z+3 else y = x-4: z= z-3
Если в данном примере z =2 и х=5, то y=9, а z =5. а если х=0, то y=-4, а z= -1.
Блочный if.
Блочный оператор IF есть смысл использовать, когда <действие1> или <действие2> достаточно громоздки и состоят из большого числа операторов.
Простейшая структура блочного IF:
If <логическое выражение> then
<действие>
end if
По сути та же, что и в однострочном IF, с теми отличиями, что
а) после слова THEN не стоит ничего ( кроме, быть может комментария)
б) оператор заканчивается словами end if.
Аналогична и структура вида:
If <логическое выражение> then
<действие1>
else
<действие2>
end if
пример.
If x<7 then
y=y+4
t=t-8
x=x-y/5
else
y=y-7
t=t+x-z
end if
Оператор if может иметь и более сложную структуру, а именно:
If <логическое выражение1> then
<действие1>
elseif <логическое выражение2> then
<действие2>
elseif <логическое выражение3> then
<действие3>
.................................................................
else
<действия группы else>
end if
В этом случае проверяется <логическое выражение1>. Если оно истинно, то выполняются <действия 1> и мы выходим из оператора.
Если <логическое выражение1> ложно, то проверяется <логическое выражение2>. Если оно истинно, то выполняются <действия 2> и мы выходим из оператора, и т. д.
Если ни одно из логических выражений не принимает значение «истина», то выполняются действия группы “ELSE”. Отметим, что в квадратных скобках стоят не обязательные для блочного оператора if операторы.
Пример.
If x<3 then
x=x-3
elseif
x<5 then ‘ на эту ветвь попадем, когда
3
x<5
x=x-4
elseif x<8 then ‘ на эту ветвь попадем, когда 5 x<8
x=x*7
elseif (x<18 and x>30) then ‘ подумайте, когда попадем на эту ветвь
x=x/7
else‘ подумайте, когда попадем на эту ветвь
x=x/2
end if
Комментарии в программе начинаются с символа «‘» и никакого влияния на программу не имеют.
Оператор выбора select case
Если необходимо проверить несколько условий, которым удовлетворяет некоторая переменная, можно использовать оператор select case.
Синтаксис:
select case
[case СписокВыражений_1]
[Инструкция _1]
. . .
[case СписокВыражений _n]
[Инструкция _n]
[case else]
[Инструкция _else]
end select
- СписокВыражений - список, который состоит из одной или нескольких форм следующего вида:
Выражение, Выражение То Выражение, Is Оператор Сравнения Выражение,
где Выражение – это любое числовое или строковое выражение. Ключевое слово То задаёт диапазон значений. При использовании ключевого слова То перед ним должно находится меньшее значение, после большее. Ключевое слово Is с операторами сравнения задаёт диапазон значений. Если ключевое слово Is не указано, оно устанавливается по умолчанию..
- Инструкции – это одна или несколько инструкций, которые исполняются в том случае, если выражение совпадает с некоторым значением из списка от СписокВыражений-1 до СписокВыражений-n.
Инструкции_Else – одна или несколько инструкций, которые выполняются в том случае, когда выражение не совпадает ни с одним из предложений Case.ы
При попадании на некоторую ветвь оператора select case и выполнения инструкций мы выходим из данного оператора, не осуществляя остальных проверок.
Пример . В зависимости от величины введенного числа отображается сообщение, которое указывает на величину числа или диапазон, которому оно принадлежит.
x = InputBox("Введите целое число")
Select Case x
Case 1
MsgBox "Число равно 1"
Case 2, 3
MsgBox "Число равно 2 или 3"
Case 4 To 6
MsgBox "Число от 4 до 6"
Case 7 To 8, 9 To 10
MsgBox "Число от 7 до 8 или от 9 до 10 "
Case Is >= 17, Is <= -15
MsgBox "Число не меньше 17 или не больше -15"
Case Else
MsgBox «число не удовлетворяет ни одному условию отбора»
End Select
Макросы
В офисных приложениях существует специальное средство позволяющее записать код действий, которые выполняются пользователем. Данное средство называется макрорекордером.
Для того чтобы изучить действие макрорекордер рассмотрим следующий пример: предположим
мы хотим строить график функции которая протабулирована на рабочем листе EXCEL в диапазоне А1:В22.
|
A |
B |
1 |
аргумент |
функция |
2 |
0 |
0.7 |
3 |
0.1 |
0.5 |
. |
............. |
............. |
22 |
2 |
7.6 |
Для запуска макрорекордера мы выполняем команду:”сервис”=>”макрос”=>”начать запись”,после чего выводится окно:
После выбора имени макроса (по умолчанию имя макроса «Макрос1», но вы можете его изменить по вашему усмотрению) и нажатия ОК, мы стандартным образом, используя мастер диаграмм в EXCEL, строим график нашей функции. Во время записи макрорекордер записывает все наши действия на языке VBA, без нашего участия. Обращаем внимание на то, что во время записи макроса на рабочем месте появляется кнопка “остановить запись.” Для того чтобы остановить запись, мы нажимаем на кнопку “остановить запись” или выбираем команду сервис-макрос- остановить запись
Замечание: при работе с записью макроса рядом с кнопкой “остановка записи” присутствует кнопка “относительные ссылки”, которую можно использовать в случае необходимости.
Удалим график с рабочего листа. Выбрав команду “сервис”=>”макрос”=>”макросы”(ALT+F8) увидим имена всех макрокоманд, которые записаны в рабочей книге.
Выбираем из перечня имеющихся макросов “ макрос1” и нажимаем клавишу “Выполнить”.
Рядом с имеющимися данными появляется график нужной нам функции.
