- •2. Блок ввода-вывода.
- •3. Логический блок.
- •4 . Блоки начала и конца блок-схем
- •5.Соединительные блоки
- •Однострочный if.
- •Блочный if.
- •Как запустить нашу программу из редактора vbа на выполнение?
- •Как назначить макрос кнопке размещенной на рабочем месте так, чтобы щелчок на этой кнопке заставлял выполнить нужный макрос?
- •Создание собственного кода программы.
- •Первая программа на vba. Воспользуемся третьим сценарием. По пунктам запишем наши действия.
- •Как из окна редактора попасть на рабочий лист?
- •Где хранятся программы?
- •Циклические алгоритмы.
- •Рассмотрим циклы 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)
- •Полоса прокрутки (ScrollBar)
- •Пример1. Программа «скорость».
- •Флажок или индикатор (Check Box)
- •Пример 2. «Утоляем жажду».
- •Элемент управления «рисунок» (Image)
- •Элемент управления «список» (ListBox)
- •Поле со списком, или комбинированный список(Combobox)
- •Пример использования.
- •Static – объявление переменной статической.
- •Дополнительные элементы управления.
- •Работа с файлами последовательного доступа
- •Открыть файл последовательного доступа можно в трёх режимах:
- •Открытие файла.
- •Закрытие файла ( оператор close).
- •Формат оператора input:
- •Операторы вывода в файл print и write
- •Формат функции eof
- •Input#1, X ‘считываем очередной элемент массива
- •Литература.
Открытие файла.
Один из форматов оператора открытия файла (OPEN) имеет вид:
OPEN<имя файла>FOR<тип обработки>AS<номер файла>.
Примеры:
OPEN “С:\STUDENT\PROBA.txt” FOR Output AS 1
OPEN “A:\БВ1\Лаб6.txt” FOR Input AS 2
OPEN “BV.DAT” FOR Append AS 3
Закрытие файла ( оператор close).
Закрытие файла осуществляется с помощью оператора CLOSE, с указанием номера закрываемого файла.
Например:
CLOSE #1
CLOSE #2
CLOSE #3
Перед номером файла в записях ставят символ #.
Операторы CLOSE (без указания номера файла), STOP и END автоматически закрывают все открытые файлы.
Формат оператора input:
Для считывания информации из файла используют оператор INPUT, формат которого имеет вид:.
INPUT#<номер файла>,<переменная>[,<переменная]…
Переменные идут через символ [,].
Пример:
Пусть строковая переменная str содержит имя файла, откуда будет считываться информация
OPEN str for INPUT as 1
INPUT#1, x,y,z
Переменные x, y, z из открытого файла, мы могли считать, например, в таким образом:
INPUT#1, x
INPUT#1, y, z
Естественно, что в том файле, откуда считываются данные, они должны идти в том порядке, что и в операторе INPUT, например, следующим образом:
5, 10, -7
После считывания информации x=5, y= 10, z=-7
Замечание 1.
При вводе данных разделителем между данными могут быть запятая , пробел или перевод строки.
Следовательно, в нашем примере данные в файле могли быть записаны в виде:
5 10 -7
Замечание 2.
Символьные переменные могут стоять как в кавычках (“Ваня”), так и без них (Ваня).
Операторы вывода в файл print и write
Формат этих операторов:
PRINT#<номер файла>,<список выражений>
WRITE#<номер файла>,<список выражений>
Разделители [,] и [;] между переменными как в привычном методе PRINT, как, впрочем, и функциях SPC() и ТАВ().
Основные отличия PRINT и WRITE:
WRITE – выводит символьные переменные в кавычках, разделив данные запятыми.
Пример.
х=5: y=3: z=”БМС”
PRINT#1, “Пример”, “Вася”; “Петя”
WRITE#1, “Пример”, “Вася”; “Петя”
Будет выдана информация:
Пример Вася Петя для оператора PRINT
“Пример”, “Вася”, ”Петя” для оператора WRITE
PRINT#1, x*y, 5*20; z
WRITE#1, x*y, 5*20; z
Будет выдана информация:
15 100 БМС, для оператора PRINT
15, 100, “БМС”, для оператора WRITE
PRINT#1, “x=”;
PRINT#1, x
WRITE#1, “x=”;
WRITE#1, x
Будет выдана информация:
х=5 две строки PRINT
х=,5 две строки WRITE. Обратите внимание – появилась запятая!
Среди функций, используемых при обработке файлов отметим функцию EOF (End of File) – проверка достижения конца файла. Функция принимает 2 значения – истина или ложь. Если достигается конец файла – истина, нет – ложь.
Формат функции eof
EOF (<номер файла>)
Пример использования.
OPEN ”DD.txt” FOR INPUT AS #1
До UNTIL EOF(1)
<действия>
LOOP
Действия повторятся пока функция EOF(1) ложна, т. е. пока не достигнем конца файла.
Оператор EOF() часто используется, когда неизвестно, сколько информации необходимо считать. Например, мы должны считать информацию об одномерном массиве, а сколько в нём элементов заранее неизвестно. Как поступить?
1 этап. Открыть файл
2 этап. Подготовить переменную, в которой будет храниться информация о размере массива (первое значение переменной n=0)
3 этап. Считывать элементы массива в одну и ту же фиктивную переменную (например х) по ходу увеличивая информацию о размере массива
4 этап. После того, как массив прочитаем, закрыть файл. В переменной n хранится нужная информация о размере.
5 этап. Определить размер массива (Dim или Redim)
6 этап. Считать массив
Фрагмент программы.
OPEN “DATA.txt” FOR INPUT AS 1
n=0
DO UNTIL EOF(1)
