Проектирование
диалоговых систем в VBA Excel и VBscipt (Часть 1.)
(для экономистов и менеджеров)
Автор: доцент кафедры информатики ГУ-ВШЭ Герасимов Н.А.
Москва, сентябрь, 2001 г. ВРЕМЯ
КОМПЬЮТЕРНЫЙ КЛУБ ГУ-ВШЭ
(ItClub HSE)
Оглавление
Об автореВведение
Глава 1. Основы офисного программирования на VBA
Глава 2. Базовый набор элементов управления
Глава 3. Управление диалогом в VBA
Глава 4. Доступ к файлам и базам данных
Примеры и решения . ZIP-файл с примерами на VBA (Приложения для экономистов и менеджеров)
Литература .
Справочный материал
Вернуться в оглавление (back to menu)
1.1. Переменные, константы, массивы, структуры данных
Переменные используются для хранения
изменяющихся данных в памяти компьютера.
Переменные в Visual Basic имеют имена. Для
формирования имен переменных применяются
следующие правила
Примеры имен переменных: strName, numRow, strFullName
Переменные могут быть различного типа
Название типа переменной | Обозначение типа в VBA | Пример |
Целое число | Integer | Dim I,K,L As Integer |
Символьная переменная | String | Dim StrName As String |
Тип переменной определяет размер памяти,
отводимой для хранения данных в машинной
памяти. В Visual Basic используются следующие
типы переменных
Константы используются для хранения не изменяющихся данных (например: чило "пи", "е" и т.п.). Имена констант
1.2. Операции, встроенные функции, подпрограммы и функции пользователей
Для выполнения сложных вычислений в VBA используются встроенные функции (вычисление синуса, логарифма, преобразования и т.п.). Основные группы встроенных функций показаны ниже
Функции математические
Название функции | Обозначение в VBA | Пример использования |
Вычисление синуса | Sin() | Y=Sin(x) |
Вычисление натурального логарифма | Ln() | Y=Ln(x) |
Получение случайного числа | Rnd() | n=Rnd(1)*1000 |
Функции контроля и преобразования данных
Название функции | Обозначение в VBA | Пример использования |
Проверка переменной на число | IsNumeric() | If Not IsNumeric(nn) then ... |
Проверка переменной на дату | IsDate() | Fl=IsDate(dd) |
Функции работы со строковыми переменными
Название функции | Обозначение в VBA | Пример использования |
Определение длинны строковой переменной | Len(s1) | s1="Иванов"
l=Len(s1) l равно 3 |
Объединение двух строк | s1 & s2 | s1="Иванов " а s2="123456"
s3=s1 & s2 s3 равно ""Иванов 123456" |
Поиск позиции одной строковой переменной в другой | Instr(n1,s1,s2) | Пусть s1="3", а
s2="12223456"
v=Instr(1,s1,s2) v равно 5 |
1.3. Операторы ветвления программ (If...Then. Select...Case)
В VBA допустимы следующие конструкции условного оператора If
Простая конструкцияIf <условие> Then <Оператор>
Блочные конструкцияIf <условие> Then
<Блок операторов>
End If
If <условие> Then
<Блок операторов, который
выполняется если условие выполнено>
Else
<Блок операторовкоторый
выполняется если условие не выполнено>
End If
If <условие1> Then
<Блок операторов1>
ElseIf <условие2> Then
<Блок операторов2>
ElseIf <условие3> Then
<Блок операторов3>
...
End If
Разветвление в программе с помощью Select
Select <переменная>
Case
<значение переменной> : <оператор>
Case
<значение переменной>
<Блок
операторов>
Case
<значение переменной>
<Блок
операторов>
End Select
1.4. Организация циклов (For...Next, For Each ...,Do...Loop)
Циклы организуются для многократного повторения выполнения группы операторов.
Циклы с конечным числом повторений
For <имя переменной
цикла>=<нач. значение> To
<кон. значение> [ Step <шаг
изменения>]
<блок операторов>
Next <имя переменной
цикла>
Пример:
Sub Test1()
'вычисление квадрата чисел от 1 до 10 с шагом 2
For x=1 to 10 step 2
x1=x^2
Debug.Print x, x1 'Вывод значений в окно отладки
Next x
End sub
Организация цикла по коллекции объектов.
For Each <элемент множества или коллекции> In <множество или коллекция>
Пример
Sub Test2()
'выдать имена всех листов текущей книги Excel
For Each b In ActiveWorkbook.WorkSheets
Debug.Print b.Name 'Вывод значений в окно отладки
Next x
End sub
Организация бесконечных циклов
Do [While
<условие>]
<Блок операторов>
Loop [<Until <условие>]
Пример
Sub Test3()
'поиск первой пустой строки в текущей таблице
Nstr=1 'Номер текущей строки в таблице
Do
rr=cells(Nstr.1).value
if Trim(rr)=empty then Exit do
'переход на следующую строку
Nstr=Nstr+1
Loop
Msgbox Nstr 'выдать сообщение
End Sub
For
Each b In
ActiveWorkbook.WorkSheets
Debug.Print b.Name 'Вывод
значений в окно отладки
Next x
End sub
1.5. Модули и макросы
Вернуться в оглавление (back to menu)
2.1. Формы их свойства (Form)
Пример формы для ввода данных в платежное поручение
Вернуться в оглавление (back to menu)
3.2. Проектирование диалога типа "Меню"
3.3. Связь между формами
Вернуться в оглавление (back to menu)
Вернуться в оглавление (back to menu)
Вернуться в оглавление (back to menu)
Вернуться в оглавление (back to menu)
Вернуться в оглавление (back to menu)