- •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 ‘считываем очередной элемент массива
- •Литература.
Функция Format()
Функция Format позволяет представлять (форматировать) практически все типы данных (даты, числа, текст) в нужном нам виде. Это особенно важно, когда данные необходимо вывести на печать ( например, при выводе таблицы чисел, когда каждое из чисел должно иметь одинаковое число знаков после запятой и располагаться одно под другим).
Для управления функцией Функція Format используется одна строка – так называемый шаблон. Кроме стандартных, системных шаблонов, пользователь, при необходимости, может создавать свои.
Функция Format возвращает значение типа Variant (String), которое содержит выражение, отформатированное согласно спецификациям, заданным в описании шаблона.
Одна из возможных форм синтаксиса:
Format(выражение, “спецификация”).
Отметим, что в спецификации можно добавить любой символ, который затем будет выведен на печать.
Значения, которые может принимать спецификация, наведены в таблице
Символ |
Описание |
0 # . % : , / E+, E-, e+, e- d, m, y h, m, s |
Резервирует позицию цифрового разряда Резервирует позицию цифрового разряда с подавлением незначащих нулей Резервирует позицию знака, разделяющую дробную и целую часть числа Резервирует процентное отображение числа Разделяет часы, минуты, секунды в категории формату Time Разделяет сотни от тысяч Разделяет день, месяц, год категории формату Date Разделяет мантиссу и порядок в экспоненциальном формате Резервирует позицию при выводе дня, месяца, года в категории формата Date Резервирует позицию при выводе часа, минуты, секунды в категории формата Time |
Примеры:
Формат |
Результат |
Format(1.3^2, “##.###”) Format(1.2^2, “##.000”) Format(1.3^2, “##.###$”) Format(Sin(1)*Exp(5), “#.###e+##”) Format(Now, “hh:mm:ss”) Format(Now, “dd/mm/yyyy”
|
1.69 (нет незначащего нуля) 1.440 (есть незначащий нуль) 1.69$ 1.249e+2 20:57:13 20.09.2006
|
Отметим, что функция Now задаёт текущую дату.
Еще раз о функциях val, inputbox Функция Val()
Даная функция является функцией, которая преобразует текст в число (если такое возможно). Более точно функция val работает следующим образом: если в начале текста стоит некоторое число, то функция val игнорирует идущие впереди пробелы, преобразует нашу запись в число, которое стоит в начале текста. Остальные символы строки во внимание не принимаются. Если строка начинается не с числа, то функция val возвращает значение 0. Разделитель целой и дробной части точка, а не запятая!
Пример:
y = val („10 негретят”) ‘ y = 10
y = val („негретят 10”) ‘ y = 0
y = val („”) ‘ y = 0
y = val („-15,34”) ‘ y = -15
Функция InputBox().
При работе с функцией InputBox мы можем окончить ввод информации, нажав на кнопку «ОК» или «Отмена». Если мы нажимаем на клавишу «Отмена», то переменной в левой части равенства будет присвоена «пустая строка».
Функция MSGBOX().
Функция MSGBOX() аналогична по действию оператору MSGBOX, но её целесообразно использовать, когда пользователь должен принять какое-то решение в зависимости от появляющегося сообщения. Например:.
Для того, чтобы в окне сообщений появлялись кнопки необходимо дать информацию о них после выводимого сообщения. Одна из модификаций функции MSGBOX() имеет вид:
MSG BOX («сообщение», [«кнопки»], [«заголовок окна»])
Напомним, что символы [ ], используются, чтобы показать, что параметр необязательный.
Какие кнопки можно использовать?
Кнопка |
Значение параметра |
Константа VBA |
OK |
0 |
VBOKOnly |
OK, Cancel (ОК, Отмена) |
1 |
VBOKCancel |
Abort, Retry и Ignore (Стоп Повтор Пропустить) |
2 |
vb AbortRetryIgnore |
Yes, No, Cancel (Да Нет Отмена) |
3 |
vbYesNoCancel |
Yes, No (Да Нет) |
4 |
VBYesNo |
Retry, Cancel (Повтор Отмена) |
5 |
vbRetryCancel |
В зависимости от того, какую из кнопок вы нажимаете, функция MSGBOX возвращает значения.
Кнопка |
Возврааемое значение |
Константа VB |
OK |
1 |
vbOK |
Cancel |
2 |
vbCancel |
Abort |
3 |
vbAbort |
Retry |
4 |
vbRetry |
Ignore |
5 |
vbIgnore |
YES |
6 |
vbYes |
No |
7 |
vbNo |
Отметим, что константы VB – это те же числа, что стоят во второй колонке. Ими удобнее пользоваться, т. к. из их вида понятно, какие кнопки имеются в виду.
Пример.
Y=MSG BOX(“окончить работу?”, VBYESNO)
Если нажимаем кнопку «ДА», то у = 6 (или у =VBYES).
Если «НЕТ», то у = 7 (или у = VBNO)
Для индикации произошедшего события в окне сообщений можно отобразить одну из пиктограмм:
,
,
,
Для этого вместе с информацией о кнопках необходимо дать информацию о пиктограммах. Эта информация располагается в виде суммы констант или константы равной сумме соответствующих констант о кнопках и пиктограммах.
Значения параметра о пиктограммах в окне MsgBox
Константа |
Значение |
Знак сообщения |
VbCritical
|
16
|
|
VbQuestion
|
32
|
|
VbExclamation
|
48
|
|
VbInformation |
64 |
|
