- •Содержание
- •Раздел 1. Быстрый старт 2
- •Раздел 2. Редактор Visual Basic 11
- •Immediate Window (окно проверки) 15
- •Раздел 3. Переменные и типы данных 27
- •Раздел 4. Операторы управления 51
- •Раздел 5. Процедуры, подпрограммы и функции 66
- •Раздел 6. Объекты ms Excel 101
- •Раздел 7. Пользовательские формы 139
- •Immediate Window (окно проверки) 177
- •Введение
- •Раздел 1.Быстрый старт Использование макрорекордера
- •Запись макроса
- •Запуск макроса
- •Абсолютные и относительные ссылки Запись формулы на рабочем листе
- •Макрорекордер
- •Диалоговые окна для ввода/вывода данных
- •Функция InputBox
- •Функция MsgBox
- •Раздел 2.Редактор Visual Basic
- •Окна редактора vb
- •Project Window (окно проекта)
- •Properties Window (Окно свойств)
- •Code (окно программы)
- •Immediate Window (окно проверки)
- •Получение справки
- •Запись процедур
- •Режимы работы с программой
- •Ошибки и их обнаружение
- •Отладка
- •Меню и панели инструментов Visual Basic
- •Панели инструментов Стандартная панель инструментов
- •Панель инструментов отладки
- •Раздел 3.Переменные и типы данных Объявление переменных
- •Важность объявления переменных
- •Область видимости переменных
- •Время жизни переменных
- •Инициализация переменных
- •Операции с элементарными данными
- •Оператор присваивания
- •Выполнение операций
- •Арифметические операции
- •Операции сравнения
- •Оператор Like
- •Логические операции
- •Символьные операции
- •Приоритет операций
- •Операции с другими типами данных
- •Объектные переменные
- •Массивы
- •Динамические массивы
- •Пользовательский тип
- •Раздел 4.Операторы управления
- •Условный оператор If
- •Оператор выбора Select Case
- •Операторы цикла
- •Цикл For…Next
- •Цикл For Each…Next
- •Оператор Set
- •Цикл Do…Loop
- •Цикл While…Wend
- •Раздел 5.Процедуры, подпрограммы и функции
- •Классификация процедур
- •Структура и объявление процедуры
- •Синтаксис объявления процедуры общего типа
- •Синтаксис объявления функции
- •Вызов процедуры
- •Параметры и аргументы
- •Возврат значения функции
- •Использование процедур-функций на рабочем листе
- •Поименованные аргументы
- •Использование необязательных аргументов
- •Использование параметра ParamArray
- •Вызов процедур другого проекта
- •Автопроцедуры
- •Событийные процедуры
- •Рекурсивные процедуры
- •Встроенные функции Классы функций
- •Использование табличных функций
- •Организация интерфейса при помощи встроенных функций
- •Функция MsgBox
- •Функция InputBox
- •Строковые функции
- •Примеры на использование различных строковых функций Функция Format
- •Функция Val
- •Функции Len, Mid
- •Функция Left
- •Функция Instr
- •Функция Chr
- •Математические функции
- •Функции Int и Fix
- •Функция Log
- •Функции Randomize и Rnd
- •Функции даты и времени
- •Примеры функций даты и времени Функции Day, Month, Year, DateSerial
- •Функции Now, Time, Timer
- •Функция WeekDay
- •Функции Hour, Minute, Second
- •Раздел 6.Объекты ms Excel
- •Свойства объектов
- •Методы объектов
- •Модель объектов
- •Коллекции объектов
- •Обращение к объекту Контейнеры
- •Ссылка на объект
- •Оператор With
- •Использование объектных переменных
- •Объект Application
- •Активные объекты
- •Свойства, влияющие на высвечивание на экране Свойство DisplayAlerts (r/w Boolean)
- •Свойства DisplayFormulaBar (r/w Boolean), DisplayStatusBar (r/w Boolean)
- •Свойство ScreenUpdating (r/w Boolean)
- •Свойства Top, Left, Height, Width, UsableWidth, WindowState
- •Свойство Visible (r/w Boolean)
- •Другие свойства объекта Application
- •Методы Метод Calculate
- •Метод CheckSpelling
- •Метод OnTime
- •Метод Wait
- •Коллекции объектов
- •Объекты Workbooks и Workbook
- •Событийные процедуры
- •Объекты Sheets, WorkSheets и WorkSheet
- •Свойства Свойство Name (r/w String)
- •Свойство Type (r/o String)
- •Свойство UsedRange
- •Свойства Next и Previous
- •Свойство Parent
- •Свойство Visible (r/w Boolean)
- •Методы Метод Add
- •Методы Move и Select
- •Событийные процедуры
- •Объект Range
- •Свойства Cвойство Range
- •Свойство Cells
- •Свойство Offset
- •Метод Union и свойство Areas
- •Свойства Column и Row (r/o Integer)
- •Свойства Columns и Rows
- •Свойство CurrentRegion
- •Cвойства, связанные с шириной и высотой ячейки
- •Методы Методы Select и Activate
- •Метод Clear
- •Цветовое оформление объекта Range Свойство ColorIndex
- •Свойство Color
- •Раздел 7.Пользовательские формы
- •Режимы работы с формой
- •Режим конструктора
- •Элементы управления
- •Событийные процедуры
- •Режим выполнения
- •Объекты UserForm и Controls
- •Разработка приложения
- •Приложение 1
- •Конструирование начальной формы
- •Свойства формы и элементов управления
- •Создание событийных процедур
- •Конструирование формы для выбора рабочего листа
- •Создание событийных процедур
- •Элемент ListBox
- •Событийная процедура инициализации формы
- •Завершение разработки приложения
- •Связь формы с ячейками рабочего листа
- •Элемент TextBox
- •Элемент ListBox
- •Приложение 2
- •Конструирование форм
- •Процедуры
- •Приложение a. Справочная система Просмотр объектов, их свойств и методов (Object Browser)
- •Окно Object Browser
- •Панель инструментов Object Browser
- •Выход из Object Browser
- •Интерактивная подсказка
- •Приложение b. Инструментальные средства отладки программ
- •Контрольные точки или точки останова
- •Трассировка или пошаговое выполнение программы
- •Использование объекта Debug
- •Окна отладчика
- •Immediate Window (окно проверки)
- •Окно значения переменной
- •Locals Window (окно локальных переменных)
- •Окно контрольных значений (Watches)
- •Приложение c. Основные формы записи алгоритмов
- •Понятие "алгоритм"
- •Классификация алгоритмов
- •Способы записи алгоритмов
- •Запись на естественном языке
- •Изображение алгоритма в виде графических символов
- •Представление основных типов алгоритмов в виде блок-схем
Инициализация переменных
При входе в процедуру локальные переменные (за исключением переменных объявленных как Static) автоматически получают начальные значения. Начальные значения устанавливаются в соответствии с типом переменной. Переменные, объявленные на уровне модуля, инициализируются при первом входе в модуль, статические переменные – при первом входе в процедуру.
Значения, устанавливаемые при инициализации переменных
Тип |
Начальное значение |
Integer, Long, Single, Double |
0 |
String (переменная длина) |
Пустая строка (кол-во символов 0) |
String (фиксированная длина) |
Заполняется символами, имеющими ASCII-код 0, иными словами Chr(0) |
Variant |
Empty |
Object |
Nothing |
На практике для того, чтобы избежать неясностей, Рекомендуется
явным образом инициализировать переменную, прежде чем использовать ее в выражении или в правой части оператора присваивания.
Пример
Присвоение начальных значений
Private Sub A() Dim LO_A As Integer, LO_B As String LO_A=1 ‘начальное значение 1 LO_B="" ' начальное значение - пустая строка End Sub |
Для задания пустой строки используются две двойных кавычки, между которыми ничего нет – пустая строка. |
Операции с элементарными данными
Операции с данными – это действия, которые совершаются с одним, двумя и более операндами. Операнд – величина, которая участвует в операции. В зависимости от результата операции делятся на арифметические, логические, символьные операции и операции сравнения.
Перечень операций
Операция |
Название операции |
Примеры и значения результата |
|
Арифметические операции – операнды: числовые значения или значения, которые могут быть преобразованы в числовые |
Выражение |
Результат – число |
|
+ |
сложение |
10 + 3 |
13 |
- |
вычитание или отрицание |
10 – 3 |
7 |
* |
умножение |
10 * 3 |
30 |
/ |
деление |
10 / 3 |
3,333333 |
\ |
деление нацело |
10 \ 3 |
3 |
Mod |
получение остатка от деления |
10 mod 3 |
1 |
^ |
возведение в степень |
10 ^ 3 |
1000 |
Операции сравнения – операнды: числовые, символьные, логические значения |
Результат True |
Результат False |
|
= |
равенство операндов |
5=10/2 |
5=10 |
< |
первый операнд меньше второго |
5<10 |
10<5 |
> |
первый операнд больше второго |
10>5 |
5>10 |
<= |
первый операнд меньше или равен второму |
5<=10 |
10<=5 |
>= |
первый операнд больше или равен второму |
10>=5 |
5>=10 |
<> |
первый операнд не равен второму |
5<>10 |
5<>5 |
Is |
сравнение типов объектов (идентичность) |
IsNumeric(5) |
IsNumeric("A") |
указание условия на значение в операторе множественного выбора Select Case |
Is >0 |
|
|
Like |
сравнение строковых значений с образцом |
"aBBBa" Like "a*a" |
"aBBBa" Like "aa" |
Логические операции – операнды: числовые, логические значения |
Результат True |
Результат False |
|
And |
логическое "И" (конъюнкция) |
(25>10) And (85>25) |
(25>10) And (85<25) |
Or |
логическое "ИЛИ" (дизъюнкция) |
(25>10) Or (85<25) |
(25<10) Or (85<25) |
Not |
отрицание |
Not (25<10) |
Not (25>10) |
Xor |
исключающее "ИЛИ" |
(25>10) Xor (85<25) |
(25>10) Xor (85>25) |
Imp |
импликация (следование) |
(25<10) Imp (85>25) |
(25>10) Imp (85<25) |
Eqv |
эквивалентность (равенство) |
(25>10) Eqv (85>25) |
(25>10) Eqv (85<25) |
Символьные операции – операнды: числовые, символьные, логические значения |
|
||
& + |
конкатенация (сцепление) |
Если A="X+2XY" и B="+Z", то результаты A & B и A + B совпадают и равны X+2XY+Z |