- •Норинский л. Ю. Программирование на Visual Basic и Visual Basic for Applications (Конспект лекций)
- •Введение
- •1. Основы языка программирования visual Basic
- •1.1. Общие сведения о Visual Basic
- •1.2. Среда vb, инструментальные средства. Разработка проектов
- •1.3. Типы данных. Константы и переменные
- •1.4. Операции
- •1.5. Ввод и вывод данных
- •1.6. Управляющие операторы
- •1.7. Массивы
- •1.8. Примеры программ работы с числами
- •1.9. Обработка строк. Примеры
- •1.10. Математические вычисления. Другие операторы и функции
- •1.11. Процедуры и функции. Примеры
- •1.12. Работа с файлами
- •1.13. Обработка ошибок
- •2. Разработка интерфейса
- •2.1. Элементы управления
- •2.1.1. Общие сведения
- •2.1.2. Встроенные эу
- •2.1.3. Внедренные и связанные эу
- •2.2. Разработка форм
- •2.3. Создание и использование меню
- •2.4. Окна диалога
- •3. Классовое общество
- •3.1. Классы-формы
- •3.2. Модули классов и стандартные модули
- •3.3. Управление событиями объекта
- •3.4. Семейства и массивы объектов
- •4. Vba. Макропрограммирование
- •4.1. Общие сведения о vba
- •4.2. Работа в Excel с помощью vba
- •4.2.1. Объекты Application и семейство Workbooks
- •4.2.2. Объекты Worksheet и Worksheets
- •4.2.3. Объект Range
- •4.3. Макропрограммирование
- •4.4. Создание макросов в Word
- •4.5. Создание макросов в Excel
- •4.6. Пример макроса
- •Приложения п1. Некоторые виды ошибок
- •П2. Свойства элементов управления
- •П3. Методы работы с элементами управления
- •П4. Примеры проектов vb Проект 1.
- •Проект 2.
- •Проект 3.
- •Проект 4.
- •Проект 5.
- •Проект 6.
- •Проект 8.
- •Проект 11.
- •П5. Пример ПроектА vba.
- •Литература
3.4. Семейства и массивы объектов
После обеспечения класса свойствами, методами и событиями его можно применять. Однако использовать классы в программе непосредственно нельзя. Для этого на основе класса надо создать объекты:
Dim object As New Class1 или по другому
Dim object As Class1
Set object = New Class1.
Можно создавать набор (семейство) элементов с помощью объекта Collection, на который можно ссылаться как на единое целое. Для добавления объектов в семейство используется метод Add, а для удаления Remove:
‘общие объявления
Dim As New Collection
. . .
Collect_Name.Add object [,key][,before][,after]
Collect_Name.Remove key | index
где object - добавляемый объект, key – символьная строка для идетификации объекта, before – номер позиции предыдущего элемента, after – номер позиции последующего элемента.
Свойство Count содержит количество элементов семейства. Метод Item позволяет получить доступ к определенному элементу семейства: Collect_Name.Item key | index.
Для работы со всеми элементами семейства можно использовать цикл For Each…Next:
For Each element In Collect_Name
Debug.Print element.Property‘каждый элемент один раз присваивается объектной переменной
Next element
Для объединения объектов могут использоваться и массивы:
Dim objVariable (5) As New form1.
4. Vba. Макропрограммирование
4.1. Общие сведения о vba
Visual Basic для приложений (VBA - Visual Basic for Applications) - это инструмент разработки приложений. VBA является приложением, встраиваемым в другие приложения, причем это не просто стандартный язык приложений Office 97, но средство, позволяющее расширять функциональные возможности этих приложений.
Основные возможности VBA: создание собственных диалоговых окон; создание макросов; изменение меню приложения; управление другим приложением или принадлежащими ему данными; объединение данных из нескольких приложений в одном документе; автоматическое создание или изменение страницы Web - World Wide Web (WWW) распределенная сетевая система, обеспечивающая непосредственный доступ к приложениям Internet; возможность использования VBA IDE в приложениях, которые не входят в Microsoft Office.
Основные инструменты и средства VBA:
отладка приложений без предварительной компиляции;
средства Win32 API - набор функций, позволяющих обращаться ко всем функциям Windows, управлять памятью, внешними устройствами, обрабатывать события, рисовать на экране диалоговые окна, поддерживать связь одного приложения с другим;
SQL и объекты доступа к данным для управления ими и извлечения из внешних источников, таких как Microsoft SQL Server 6.5 - сервер баз данных SQL, обеспечивающий доступ к данным в локальных и глобальных сетях и работающий под управлением операционной системы на базе Windows NT Server;
построение и проверка элементов интерфейса непосредственно в среде VBA IDE (Integradet Development Environment) - это набор инструментов разработки программного обеспечения таких как редактор, средства отладки, средства управления проектом и т.д.
При решении задач с помощью VBA требуется создать проект. Проекты VBA выполняются совместно с другими приложениями. Приложение, в котором разрабатывается сам проект VBA, называется основным, например это может быть Excel.
VBA имеет собственную среду разработки - интегрированную среду IDE. VBA IDE - это окно, содержащее меню, другие окна и элементы. Все приложения, поддерживающие VBA, работают с одним IDE. После разработки проекта VBA в IDE необходимо перейти в нужное приложение.
VBA является производным от Visual Basic (VB). Назначение VBA - совместная работа с прикладными программами, а с помощью VB можно разрабатывать самостоятельные приложения. В то же время синтаксис и среда разработки VBA и VB во многом схожи. Например, коды для перемножения двух произвольных чисел:
1) в VB
Private Sub Command1_Click()
Text3.Text = Val(Text1.text) * Val(Text2.Text)
End Sub
2) в VBA
Private Sub Worksheet_ Activate()
frmDemo.Show
End Sub
Private Sub bthMultiply_Click()
ActiveCell.Value = Val(txtValue1.Text) * Val(txtValue2.Text)
End Sub
Для выполнения приложения VB достаточно только разработать форму и разместить в ней поля для задания значений перемножаемых чисел, а также кнопку, при нажатии который производится умножение и выводится результат.
Проект VBA необходимо связать с основным приложением, в данном случае, с Excel, следует создать форму, которая похожа на форму для приложения VB, и написать требуемые подпрограммы. Первая подпрограмма - это процедура обработки события, запускаемая при активизации текущего рабочего листа; она отображает форму frmDemo. Вторая подпрограмма также является процедурой обработки события и выполняется при нажатии кнопки bthMultiply; она преобразовывает число в текст, отображаемый в в текстовых полях, перемножает числа и выводит результат в активном рабочем листе.
Новая версия Visual Basic - Visual Basic Script (VBScript) позволяет строить небольшие приложения, встроенные непосредственно в Web-страницу.
Программы VBA не компилируются, а интерпретируются, т.е. перевод команд в машинные коды осуществляется в процессе выполнения программы.
Синтаксис VBA похож на синтаксис Visual Basic (VB), однако, в VB больше возможностей по созданию самостоятельных программ. Для выполнения программ VB не требуется загрузки основного приложения. В качестве дополнения к VBA можно также использовать язык С++, оформляя созданные на нем средства в виде библиотек DLL, элементов управления VBX и OCX. Для работы с VBA можно использовать и другие компиляторы, например, Fortran, Cobol и др.
Для создания проекта VBA используется один из следующих методов:
1) автоматическая запись макроса, а затем его редактирование); 2) создание макроса или проекта в редакторе VBA.
В окне проекта выводятся все элементы проекта в виде иерархической структуры, включающей формы, модули кода и объекты основного приложения: рабочие листы, шаблоны, документы, базы данных и т.д. Окно проекта можно открыть (View-Project Exploter), скрыть (Hide), закрепить (Dockable), переместить или изменить его размеры.
Для выбора и редактирования объекта, выведенного в окне проекта надо дважды щелкнуть по имени объекта, или щелкнуть по нему правой кнопкой и выбрать команду ОБЪЕКТ (View Object) или ПРОГРАММА (View Code).
Окно свойств используется для просмотра и задания свойств объектов проекта. С ним можно выполнять такие же манипуляции как и с окном проекта: открыть (View-Properties Window), скрыть и т.д. В окне свойств отображаются только свойства текущего объекта. Окно свойств разделено на два столбца: в левом названия свойств, а в правом их значения.
Окно модулей используется при написании любой программы VBA. Под строкой заголовка окна имеются два списка: в 1-м все объекты модуля, во 2-м процедуры, связанные с выбранным объектом. Окно модуля можно вывести и скрыть, но оно отображается только тогда, когда с выбранным объектом связан код. Можно вывести все процедуры либо отобразить только одну процедуру кнопками в левом нижнем углу ПРЕДСТАВЛЕНИЕ ПОЛНОГО МОДУЛЯ (Full Module View) или ПРЕДСТАВЛЕНИЕ ПРОЦЕДУРЫ. Для добавления модулей в проект надо: 1) в окне проекта выбрать проект, в котторый добавляется модуль, 2) в редакторе выбрать ВСТАВКА-МОДУЛЬ - выводится пустое окно модуля, 3) вывести окно свойств - F4, задать имя модуля.
Для добавления формы в проект надо: 1) если одновременно открыто несколько проектов, выбрать имя проекта, 2) выполнить ВСТАВКА-ФОРМА - выводится пустая форма и набор инструментов, 3) в меню редактора выбрать ВИД-ОКНО СВОЙСТВ (View-Properties Window) -выводится окно свойств, 4) задать свойства формы: имя и т.д.
Кроме стандартного набора инструментов можно использовать дополнительные из приложений Microsoft и других программ. Для просмотра и добавления дополнительных инструментов надо: 1) открыть форму, 2) выполнить СЕРВИС-ДОПОЛНИТЕЛЬНЫЕ ЭЛЕМЕНТЫ (Tools-Additional Controls) - выводится диалоговое окно, 3) сбросить флаг ТОЛЬКО ВЫДЕЛЕННЫЕ ОБЪЕКТЫ (Selected Items Only), 4) выбрать требуемый элемент управления, установив флаг напротив его имени, 5) нажать ОК - элемент будет выведен на панели элементов.
Для переключения в основное приложение, не закрывая проект надо: 1) в окне проекта щелкнуть правой кнопкой по объекту, который надо просмотреть, выполнить из контекстного меню команду ОБЪЕКТ, 2) выполнить команду ВИД-ОБЪЕКТ в окне редактора, 3) выбрать в меню ВИД окна редактора команду, названием кот. является имя основного приложения (обычно последняя команда), 4) выбрать на панели задач Windows основное приложение.
Для возврата в редактор VBA: 1) выполнить СЕРВИС-МАКРОС-РЕДАКТОР Visual Basic, 2) на панели задач Windows выбрать приложение Microsoft Visual Basic.