![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
Dim | Объявление переменной |
& | Слияние |
Activate | Открытие |
Add | Добавить |
As | Как, в качестве |
Bookmarks(…) | Закладка(номер) |
Border | Рамка |
Caption | Возвращает текст в строке имени главного окна по умолчанию |
Case | Функция перечисления значений от … и до … Пример: Case 5 To 20, 30 (Перечисление от 5 до 20 и 30) |
Cell | Ячейка |
Click | Нажатие |
Close | Закрытие |
Collumbus | Столбец |
Collumn | Коллонка |
Compute | Вызов |
Copy | Копирование |
Count | Подсчёт количества/Добавить |
Echo | Вывод на экран |
Empty | Пустой |
Exit | Выход |
Find | Искать (поиск) |
FindNext | Следуящая запись |
FindRecord | Найти запись |
Font | Шрифт |
Format | Формат |
If | Если |
Input | Диалог (ввод символов) |
InputBox | Окно для ввода диалога |
InSide | Внутренний |
Integer (%) | Целое значение |
Item | Обращение |
Length | Числовое значение |
Line | Линия |
Load | Загрузка |
Mod | Остаток |
MoveEnd | Вставка в конец |
MsgBox | Текстовое сообщение |
Next i | Конец цикла |
Open | Открытие |
OutputAs | Вывести в формате |
OutSide | Внешний |
Poragraphs | Абзац |
Private | Личная переменная |
Public | Общая переменная |
Quit | Выход |
Range | Диапазон |
Replacement | Заменить |
Row | Строка |
Rset | Выравнивание по провому краю |
Run | Запуск |
Save | Сохранение |
Select | Выделить |
Selection | Выделение (если стоит в начале, то это уже не действие, а выделенный объект) |
SelectObject | Выделить объект |
Set | Присвоение переменной какого-либо значения (ссылка на объект) |
Sheet | Лист |
Statistics | Статистика |
String ($) | Строка |
Sub | Подпрограмма |
Table | Таблица |
Text | Текст |
Then | То (тогда) |
This | Этот |
Title | (Свойство) |
TransferText | Преобразовать текст |
Unit | Дополнительный элемент |
Variant (Var) | Произвольный |
Wd | Word'овский символ (документ, функция и т.д.) |
Width | Ширина поля ввода |
Word | Слово |
WorkBook | Рабочая книга |
Wrap | Продолжать |
Объекты:
Объект – любая именованная сущность, имеющая свойства, которые можно проверить и изменить, методы, т.е. действия, которые может выполнить объект и события, т.е. ситуации, в которых оказывается объект и на которые можно ответить. Все визуальные объекты, такие как рабочий лист (worksheet), диапазон (Range), диаграмма (Chart), форма (userForm), выделение (selection) являются объектами VBA. В VBA имеется более 100 встроенных объектов.
Переменная – элемент данных программы, которому задано имя.
Dim – оператор объявления переменной или массива.
Объект характеризуется большим количеством свойств, методов и событий.
Свойство – атрибут объекта, определяющий его характеристики (цвет, размер и т.д.).Синтаксис: Объект.Свойство = значение свойства. Например: Range(«A1»).Value = «Параметр»
Метод– действие выполняемое над объектом. Синтаксис: Объект.Метод. Например: Application.Quit
Коллекции:
Коллекция (объект collection) представляет собой объект, содержащий несколько других объектов, как правило, одного и того же типа. Например, объект workbooks (рабочие книги) содержит все открытые объекты Workbook (рабочая книга). Каждый элемент семейства нумеруется и может быть идентифицирован либо по номеру, либо по имени. Например, worksheets (1) обозначает первый рабочий лист активной книги, a worksheets ("Лист1") — рабочий лист с именем лист1.
Классы:
Важнейшим понятием Объектно-ориентированного программирования является класс. Класс обычно описывается, как проект, на основе которого впоследствии будет создан конкретный объект. Таким образом, класс определяет имя объекта, его свойства и действия, выполняемые над объектом. В свою очередь каждый объект, в соответствии с описанным выше, является экземпляром класса.
Интерфейс редактора VBA:
· Окно проекта;
· Окно свойств;
· Окно редактирования кода;
· Окно форм;
· Меню и панели инструментов.
Встроенные типы данных в VBA:
Тип данных | Размер ( в байтах) |
Byte | |
Boolean | True, False |
Integer | |
Long | |
Single | |
Double | |
Currevcy | |
Drcimal | |
Date | |
Object | |
String | |
Variant |
Элементы программ:
Лабораторная работа №7(Пояснения не дословные, а лишь отображают функцию каждой строки или нескольких строк программы. Пояснения написаны под поясняемой строкой или группой строк.)Private Sub cmd_Exit_Click()‘подпрограмма cmd_Exit активизируется одним нажатием frm_In.Hide'Скрывая frm_In мы автоматически переходим к frm_MainEnd Sub Private Sub cmd_Rec_Click()‘подпрограмма cmd_Rec активизируется одним нажатием Dim num_Address‘объявление переменной номер адреса num_Address = ActiveSheet.Range("B1") + _ ActiveSheet.Range("B2")‘вычисление номера строки для записи ActiveSheet.Cells(num_Address, 1) = _ ActiveSheet.Range("B1")‘запись номера в первую ячейку строки ActiveSheet.Cells(num_Address, 2) = _ Date‘запись даты во вторую ячейку ActiveSheet.Cells(num_Address, 3) = _ cbo_Type.Value‘запись типа операций в третью ячейку ActiveSheet.Cells(num_Address, 4) = _ Val(txt_Sum)‘запись суммы в четвёртую ячейку ActiveSheet.Cells(num_Address, 5) = _ txt_Info‘запись примечания в пятую ячейку ActiveSheet.Range("B1") = _ ActiveSheet.Range("B1") + 1‘запись нового номера строки Initial‘сброс всех установок на формеEnd Sub Private Sub UserForm_Activate() Initial'При активации формы инициализируются элементы управленияEnd Sub Sub Initial() 'Инициализация элементов управления lbl_Date = Date‘присвоение лейблу значение даты lbl_RecNum = ActiveSheet.Range("B1") cbo_Type.Clear cbo_Type.AddItem "Доход"‘добавление обращения «доход» cbo_Type.AddItem "Расход"‘добавление обращения «расход» cbo_Type.Value = "Доход" txt_Info = "" txt_Sum = ""End SubPrivate Sub UserForm_Initialize() Load_Data (1)'Загрузка первой строки (даты)End Sub Private Sub cmd_Backward_Click() If Val(lbl_RecNum) > 1 Then Load_Data (Val(lbl_RecNum)‘если преобразований лейбла записи больше одного, то загружается предыдущую строку End If‘конец условияEnd Sub Private Sub cmd_Exit_Click() frm_Out.Hide‘при единичном нажатии на кнопку cmd_Exit форма frm_Out закрывается End Sub Private Sub cmd_First_Click() Load_Data (1)‘загрузка первой строки (даты)End Sub Private Sub cmd_Forward_Click() If Val(lbl_RecNum) < ActiveSheet.Range("B1") Then Load_Data (Val(lbl_RecNum) + 1)‘если преобразований лейбла записи меньше чем диапазон активного листа, то загружается следующая строка End If‘конец условияEnd Sub Private Sub cmd_Last_Click() Load_Data (ActiveSheet.Range("B1") - 1)‘загрузка последней строкиEnd Sub Private Sub cld_First_Click() For i = 1 To ActiveSheet.Range("B1") - 1 If ActiveSheet.Cells _ (i + ActiveSheet.Range("B2"), 2) = _ cld_First.Value Then Load_Data (i) Exit For'Просмотр таблицы,поиск первой записи за выбранную дату и вывод этой записи End If‘конец условия Next iEnd Sub Private Sub cmd_Rec_Click() Dim num_Address 'объявление переменой адрес строки для записи num_Address = Val(lbl_RecNum + _ ActiveSheet.Range("B2")) 'Вычисление номера строки для записи ActiveSheet.Cells(num_Address, 4) = _ Val(txt_Sum) 'Так как мы разрешили модифицировать лишь сумму и примечание - запишем сумму в текущую строку ActiveSheet.Cells(num_Address, 5) = _ txt_Info 'Запись примечания в ячейку активного листа (номер адреса 5)End Sub Sub Load_Data(num_Index As Integer) 'Принимает номер строки и выводит 'Данные из этой строки 'Адрес строки для чтения Dim num_Address 'Вычисляем номер строки для чтения num_Address = num_Index + _ ActiveSheet.Range("B2") lbl_RecNum = _ ActiveSheet.Cells(num_Address, 1)‘вывод номера записи lbl_Date = _ ActiveSheet.Cells(num_Address, 2)‘вывод даты lbl_Type = _ ActiveSheet.Cells(num_Address, 3)‘вывод типа операции txt_Sum = _ ActiveSheet.Cells(num_Address, 4)‘вывод суммы txt_Info = _ ActiveSheet.Cells(num_Address, 5)‘вывод примечания
End Sub
Private Sub cmd_OK_Click() frm_Balance.Hide‘при единичном нажатии на кнопку cmd_OK форма frm_Balanse закрываетсяEnd Sub Private Sub UserForm_Activate() Dim num_Address‘объявление переменной номер адреса Dim num_Earn‘объявление переменной для хранения суммы доходов Dim num_Spend‘объявление переменной для хранения суммы расходов For i = 1 To ActiveSheet.Range("B1") - 1 num_Address = i + ActiveSheet.Range("B2") 'Если в строке хранится значение дохода, то оно добавляется в num_Earn If ActiveSheet.Cells(num_Address, 3) = "Доход" _ Then num_Earn = num_Earn + _ 'Если в строке хранится значение дохода, то оно добавляется в num_Earn ActiveSheet.Cells(num_Address, 4) End If‘конец условия If ActiveSheet.Cells(num_Address, 3) = "Расход" _ Then num_Spend = num_Spend + _ ActiveSheet.Cells(num_Address, 4) 'Если в строке хранится значение расхода, то оно добавляется в num_Spend End If‘конец условия Next i‘конец цикла lbl_Balance = num_Earn - num_Spend‘лейблу lbl_Balance присвоить значение разности расходов от доходов If num_Earn > num_Spend Then _ lbl_Msg = "Доходы больше расходов."‘если доходы больше расходов, то лейблу lbl_Msg присвоится значение "Доходы больше расходов." If num_Earn = num_Spend Then _ lbl_Msg = "Доходы равны расходам."‘если доходы равны расходам, то лейблу lbl_Msg присвоится значение "Доходы равны расходам." If num_Earn < num_Spend Then _ lbl_Msg = "Доходы меньше расходов."‘если доходыменьше расходов, то лейблу lbl_Msg присвоится значение "Доходы меньше расходов."End Sub Примечание:1)Концовка программы имеет недостаток: при значении суммы расходов большем, чем значение суммы доходов на экран выводится отрицательное значение, что является не корректным. Следует разность расходов от доходов взять под знак модуля.2)При вводе данных о расходах и последующим нажатии на кнопку cmd_Rec (Запись), значение в текстовом поле txt_Type (Тип записи) автоматически переходит в значение доходов, что очень не удобно при многократном вводе данных о расходах. Следует дополнить программу кодом, сохраняющим значение указанное до нажатия на кнопку записи. Лабораторная работа №6(Очень краткие пояснения. Большая часть кода отсутствует.)Dim i As Double
‘объявление переменной i как двойной
Private Sub UserForm_Activate()
‘создание личной подпрограммы
i = 1
‘задаём переменной I значение 1
Do While Cells(i, 1) > " "
i = i + 1
Loop
txtN.Enabled = True
txtN.Text = CStr(i - 2)
txtN.Enabled = False
‘ Подсчет количества строк в таблице и вывод на форму в поле txtN
End Sub
Лабораторная работа №5
(Очень подробные пояснения.)
Private Sub CommandButton1_Click()
‘создание личной подпрограммы запускаемой при единичном нажатии на кнопку СommandButton1
Dim B(1 To 2, 1 To 2) As Integer
‘объявление переменной B (от 1 до 2) как целое значение
Dim С(1 To 2, 1 To 2) As Integer
‘объявление переменной С (от 1 до 2) как целое значение
Dim A(1 To 2, 1 To 2) As Integer
‘объявление переменной A (от 1 до 2) как целое значение
B(1, 1)=5
‘переменной В (1,1) присваивается значение 5
B(1, 2)=4
‘пояснение аналогично предыдущему
B(2, 1)=8
B(2, 2)=10
c(1, 1)=0
c(1, 2)=1
c(2, 1)=5
c(2, 2)=10
‘значения переменных A, B и C меняется в соответствии с изменением значений переменных I и j
For i=1 To 2
‘переменная i меняется от 1 до 2
For j=1 To 2
‘переменная j меняется от 1 до 2
A(i, j)=B(i, j) + С(i, j)
‘переменной A(i,J) присваивается значение суммы переменных B(i,j) и C(i,j)
Next j
Next i
‘конец цыклов
Label1.Caption=«a(1.1)=» & A(1, 1) & « a(1.2)=» & A(1, 2)& « a(2.1)=» & A(2, 1) & « a(2.2)=» & A(2, 2)
‘лейблу Label1 присваиваются значения а(1.1)=А(1,1), числовое значение которых указано выше и объединяются между собой
Label2.Caption=«b(1.1)=» & B(1, 1) & « b(1.2)=» & B(1, 2) & « b(2.1)=» & B(2, 1) & « b(2.2)=» & B(2, 2)
‘пояснение аналогично предыдущему
Label3.Caption=«c(1.1)=» & c(1, 1) & « c(1.2)=» & c(1, 2) & « c(2.1)=» & c(2, 1) & « c(2.2)=» & c(2, 2)
End Sub
‘конец подпрограммы
Private Sub CommandButton1_Click()
‘создание личной подпрограммы запускаемой при единичном нажатии на кнопку СommandButton1
Dim B(1 To 2, 1 To 2) As String
‘объявление переменой В (от 1 до 2) как строковую
Dim c(1 To 2, 1 To 2) As String
‘пояснение аналогично предыдущему
Dim A(1 To 2, 1 To 2) As String
Dim d(1 To 2, 1 To 2) As Integer
‘объявление переменной d (от 1 до 2) как целое значение
Dim k(1 To 2, 1 To 2) As Integer
‘пояснение аналогично предыдущему
B(1, 1)=TextBox5.Text
‘переменой B(1,1) в текстовом поле 5 присваивается значение текста
B(1, 2)=TextBox6.Text
B(2, 1)=TextBox7.Text
B(2, 2)=TextBox8.Text
d(1, 1)=Val(TextBox1.Text)
d(1, 2)=Val(TextBox2.Text)
d(2, 1)=Val(TextBox3.Text)
d(2, 2)=Val(TextBox4.Text)
For i=1 To 2
‘переменная i меняется от 1 до 2
For j=1 To 2
‘переменная j меняется от 1 до 2
k(i, j)=d(i, j) + 10
‘переменой k задаётся значение суммы переменной d(i,j) и 10
Next j
Next i
‘конец цыклов
For i=1 To 2
‘значение i меняется от 1 до 2
For j=1 To 2
‘значение j меняется от 1 до 2
c(i, j)=«фамилия» + B(i, j)
‘переменой c задаётся значение фамилии и переменной B(i,j)
Next j
Next i
‘конец цыклов
For i=1 To 2
‘значение i меняется от 1 до 2
For j=1 To 2
‘значение j меняется от 1 до 2
A(i, j)=«работник» + c(i, j)
‘переменной A(i, j) присваивается значение работника и переменной c(i, j)
Next j
Next i
‘конец цыклов
Label3.Caption=«a(1.1)=» & A(1, 1) & « a(1.2)=» & A(1, 2) & « a(2.1)=» & A(2, 1) & « a(2.2)=» & A(2, 2)
‘лейблу Label3 присваиваются значения а(1.1)=А(1,1), числовое значение которых указано выше и объединяются между собой
Label6.Caption=«k(1.1)=» & k(1, 1) & « k(1.2)=» & k(1, 2) & « k(2.1)=» & k(2, 1) & « k(2.2)=» & k(2, 2)
End Sub
‘конец подпрограммы
Дата публикования: 2023-10-13; Прочитано: 195 | Нарушение авторского права страницы | Мы поможем в написании вашей работы! |
Воспользуйтесь поиском по сайту: