Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб_раб_Информатика_1.docx
Скачиваний:
138
Добавлен:
21.05.2015
Размер:
12.04 Mб
Скачать

Некоторые классы объектов языка программирования Visual Basic for Application

п/п

Класс объектов

Свойства

Методы

События

1

UserForm (форма)

Name (имя)

Caption (надпись)

Font (Шрифт)

Heigt (Высота)

Width (Ширина)

Show (показать)

Move (переместить)

Load (загрузка)

2

CommandButton (командная кнопка)

Name (имя)

Caption (надпись)

Font (Шрифт)

Heigt (Высота)

Width (Ширина)

Move (переместить)

Click (щелчок)

3

TextBox (текстовое поле)

Name (имя)

Caption (надпись)

Font (Шрифт)

Heigt (Высота)

Width (Ширина)

Move (переместить)

DbClick (двойной щелчок)

4

Label (надпись)

Name (имя)

Caption (надпись)

Font (Шрифт)

Heigt (Высота)

Width (Ширина)

Каждый объект класса обладает некоторыми свойствами, реагирует на события, к нему можно применять методы.

Значения свойств объектов (Properties) изменяются в окне свойств среды программирования или в программном коде.

Присвоение объекту свойства в программном коде осуществляется по схеме:

Объект.Свойство = ЗначениеСвойства

Объект имеет обычно несколько свойств. С помощью инструкции WihtEnd Withможно задать значения сразу нескольких свойств объекта:

With Объект

.Свойство1 = ЗначениеСвойства1

.Свойство2 = ЗначениеСвойства2

.СвойствоN= ЗначениеСвойстваN

End With

Для того чтобы объект выполнил какую-либо операцию, необходимо применить метод, которым он обладает. Многие методы имеют аргументы, которые позволяют задать параметры выполняемых действий. Для присваивания аргументам конкретных значений используется двоеточие и знак равенства, а друг от друга аргументы отделяются запятой:

Объект.Метод Арг1 := значение, Арг2 := значение

Например, операция открытия документа в приложении MsWordсодержит название методаOpen, а также указание пути к открываемому файлу:Documents().OpenFileName:=”C:\Мои документы\Проба.docx”

Событие представляет собой действие, распознаваемое объектом. Событие может создаваться пользователем (например, щелчок мышью или нажатие клавиши) или быть результатом воздействия других программных объектов. В качестве реакции на события вызывается определенная процедура, которая может изменять значения свойств объекта, вызывать его методы и т.д.

Для каждого события можно программировать отклик, т.е. реакцию объекта на произошедшее событие. В качестве отклика выполняется некоторая последовательность действий (событийная процедура). Имя процедуры включает в себя имя объекта и имя события:

Объект_Событие ()

В событийной процедуре может участвовать несколько объектов. Например, некоторое событие происходит с первым объектом, в результате чего второй объект изменяет значение одного из своих свойств, а третий – реализует какой-либо метод и т.п.

Каждая процедура представляет собой отдельный программный модуль, который реализует определенный алгоритм. В терминологии процедурного программирования такие процедуры соответствуют подпрограммам, поэтому каждая из событийных процедур описывается с помощью инструкции SubEnd Sub. В программе можно использовать не только процедуры данного программного модуля, но и ссылаться на процедуры других модулей текущего документа, а также других документов.

Различают четыре типа процедур:

  1. процедуры общего назначения (стандартные), как правило, не вносят изменений вне себя;

  2. командные процедуры расширяют возможности прикладных программ, реализуя новые виды обработки;

  3. процедуры обработки событий выполняются при наступлении событий определенного вида (например, открытие или закрытие документа, нажатие кнопки, перемещение объекта и т.п.);

  4. функции пользователя, возвращающие результат описанных действий, которые могут быть использованы по аналогии с вызовом встроенных функций VBA.

VBAсоблюдает основной синтаксис и правила программирования языков семействаBasic (приложение 1).

Методика программирования с использованием средств VBAсводится к следующему:

  • создание объектов управления и контроля (диалоговые окна, пиктограммы, меню);

  • разработка процедур, используемых при вызове объектов.

Для организации работы VBAс приложением вReferencesнеобходимо подключить библиотеку объектов приложения:MicrosoftWordObjectLibrary,MicrosoftExcelObjectLibraryили др. После этого вObjectBrowserстанут активными объекты приложения, которые будут доступны пользователю в программе.

Любая программа в VBAначинается с создания объекта приложения:

DimobjWordAs Word.Application

SetobjWord=New Word.Application‘здесь переменная ‘objWord берет на себя роль приложения Word

или

Dim XL As New Excel.Application‘здесь переменная XL ‘берет на себя роль приложения Excel

Можно открыть уже имеющийся файл приложения:

XL.Workbooks.Open App.Path & "\MyBook.xls"

Set objDoc = objWord.Documents.Open (App.Path &_ "\HI.doc")

или создать новый документ:

DimobjDocAsWord.Document

SetobjDoc = objWord.Documents.Add

Если необходимо чтобы открываемое приложение было видимо пользователю, следует придать свойству Visibleобъекта значениеTrue; если приложение должно быть невидимым, свойствуVisibleпридаем значениеFalshe:

ObjWord.Visible = True

XL.Visible = False

Завершение работы с документом и приложением осуществляется функциями CloseиQuit:

ObjDoc.Close False

ObjWord.Quit False‘Необязательный параметр FALSE ‘сообщает Word, что сохранять изменения в файлах не ‘требуется. Если этот параметр опустить, то Word

‘запросит согласия пользователя (если документ не был ‘сохранен предварительно)

или

XL.ActiveWorkbook.Close ‘Завершениеработы с активной ‘книгой

Для сохранения документа используются методы Save,Save as. Метод Save не имеет параметров, т.к. он рассчитан на сохранение документов с известным именем файла:

If objDoc.Saved = False Then objDoc.Save ‘Свойство

‘Saved позволяет проверить, были ли сохранены

‘внесенные изменения.

или

XL.ActiveWorkbook.Save 'сохраняем книгу

XL.ActiveWorkbook.SaveAs "C:\MyNewWorkBook.xls"'сохраняем книгу под другим именем

Приемы получения статистической информации:

WordApp.ActiveDocument.Characters.Count 'получить

'общее количество символов в активном документе

'(буквы, цифры,пробелы, переход на новую строку и

'т.д)

WordApp.ActiveDocument.Characters(14).Text 'получить

'символ по его индексу

WordApp.ActiveDocument.Characters(14).Text="е" 'изменить символ по его индексу

Для создания графического объекта можно использовать один из двух методов:

  1. явным объявлением объектной переменной типа Shape (например, DimLine1AsWord.Shape), и последующей её инициализацией;

  2. неявной инициализацией объекта Shape.

Оба метода имеют свои преимущества и недостатки, например, при втором методе не нужно объявлять объектную переменную для каждого графического примитива, но в дальнейшем сложнее получать доступ к свойствам и методам этого конкретного объекта. Это происходит потому, что к заранее объявленному и впоследствии инициализированному графическому объекту вы обращаетесь напрямую, а при неявной инициализации необходимо знать индекс или имя конкретного графического объекта, что довольно сложно.

Таким образом, проще при создании новых графических примитивов сначала инициализировать заранее объявленный объект, получить и запомнить его имя или ввести уникальное, а затем уничтожить ссылку на этот объект и в дальнейшем использовать для доступа к объекту его уникальное имя. Если вы не собираетесь использовать слишком много графических объектов, то следует просто объявить нужное количество объектных переменных и впоследствии спокойно обращаться к ним.

Следует помнить о том, что новый графический объект создается на текущем листе и принадлежит этому листу, поэтому, сначала следует перейти на нужный вам лист и только потом инициализировать примитив.

Для достижения успеха следует уметь выполнять действия:

    • запустить редактор Visual Basic

в меню программы на закладке Разработчик в разделе Код выбрать кнопку «Visual Basic»

РазработчикКодVisual Basic…

Рис. 85. Окно интегрированной среды разработки VBA, открытое из приложенияMsWord.

    • добавить форму

в меню редактора Visual Basic выбрать закладку Insert; в развернувшемся списке выбратьUserForm