- •Норинский л. Ю. Программирование на 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.
- •Литература
4.2. Работа в Excel с помощью vba
4.2.1. Объекты Application и семейство Workbooks
В модели объектов более 100 объектов и семейств. Наиболее часто используемые: Application, Workbook, Workbooks, Worksheet, Worksheets и Range.
Объект Application является исходным элементом любой модели Office. Он представляет все приложение в целом. Свойства и методы данного элемента позволяют установить параметры работы программы, хранить информацию об объекте, используемом в данный момент и др.
Семейство WORKBOOKS содержит объекты WORKBOOK. Элемент WORKBOOK - это объект, являющийся файлом Excel - большинство других объектов хранятся в элементе WORKBOOK.
Одним из свойств WORKBOOKS является Count, оно доступно только для чтения и хранит количество объектов WORKBOOK в семействе WORKBOOKS.
Объект Workbook представляет рабочую книгу, свойства которой требуется использовать в программе. Свойства объекта Workbook:
1. ActiveSheef содержит ссылку на активный лист в заданной рабочей книге, если листа нет, то значение Nothing; только для чтения.
2. Author для чтения или установки имени автора рабочей книги:
Sub Name_Those_Workbooks()
Dim registration_name As String
'По умолчанию имя пользователя равно значению _
'Application.UserName либо имя фирмы Application.OrganizationName
registration_name = InputBox("Введите Ваше имя или название _
фирмы:","Регистрация",default:=Application.UserName)
ThisWorkbook.Author = registration_name
MsgBox "This application has been registered to" & _
ThisWorkbook.Author
End Sub
3. Saved имеет значение True, если в раб.книгу не были внесены изменения с момента последнего сохранения; для чтения и для записи; для закрытия книги, которая редактировалась, либо выдать запрос на ее сохранение можно использовать, например
Workbooks("SalesData").Saved = False
Workbooks("SalesData").Close
Параметр Workbook_object, используемый при описании синтаксиса методов, является ссылкой на рабочую книгу.
Основные методы Workbook:
1. Activate активизирует требуемую рабочую книгу: Workbook_object.Activate.
2. Close закрытие раб.книги:
Workbook_object.Close(SaveChages, FileName, RouteWorkbook),
где 1-й параметр не обязателен и позволяет задать сохранение рабочих книг; 3-й параметр для пересылки книги другому пользователю.
3. Save и SaveAs сохранение рабочей книги:
Workbook_object.Save
Workbook_object.SaveAs(FileName, FileFormat,Password, _
WriteResPassword, RearOnlyRecommended, CreateBackup, _
AccessMode, ConflictResolution, AddToMRU, TextCodePage, _
TextVisualLayout),
где FileName имя файла, если не указан путь, то сохраняется в текущей папке;
FileFormat для записи в формате, отличном от формата раб.книги Excel;
CreateBackup при True создается резервная копия;
AccessMode режим доступа к рабочей книге: xlShared - общая книга, xlExclusive - монопольный доступ, xlNoChange - запрет на изменение режима доступа;
ConflictResolution способ разрешения конфликтов при одновременном внесении несколькими пользователями изменений в общие книги; не обязателен, если опущен, то значение xlUserResolution - отображение диалогового окна разрешения конфликтов;
TextCodePage и TextVisualLayout дополнительные;
AddToMRU при True файл, сохраненный по SaveAs, вносится в список ранее открывавшихся файлов.
Для обработки событий Workbook не требуется создавать модуль класса или производить другие специальные действия. События возникают в раб.книге при изменении объекта Workbook или редактировании в ней листа. Для вывода списка событий надо: 1) восстановить или свернуть окно раб.книги (если оно развернуто, то вывод списка невозможен), 2) щелкнуть прав.кнопкой по заголовку окна раб.книги, 3) выполнить ИСХОДНЫЙ ТЕКСТ - запускается редактор VBA, 4) выбрать имя требуемого события в правом списке окна модуля.
События Workbook:
1. BeforeClose возникает при закрытии раб.книги до вывода запроса на сохранение изменений. Процедура обработки события:
Private Sub Workbook_BeforeClose(Cancel As Boolean),
где параметр Cancel имеет значение False при возникновении события; если процедура обработки присваивает значение True, то раб.книга не закрывается.
2. BeforePrint возникает перед печатью:
Private Sub Workbook_BeforePrint(Cancel As Boolean),
где параметр Cancel имеет значение False при возникновении события; если процедура обработки присваивает значение True, то отмена печати.
3. BeforeSave возникает перед сохранением рабочей книги:
Private Sub Workbook_BeforeSave(ByVal SaveAsUi As Boolen, _
Cancel As Boolean),
если требуется отобразить диалоговое окно СОХРАНЕНИЕ ДОКУМЕНТА, то присвоить параметру SaveAsUi значение True; если Cancel присвоить True, то сохранение отменяется.
4. Deactivate при потере книгой фокуса.
5. NewSheet при добавлении нового листа:
Private Sub Workbook_NewSheet(ByVal Sh As Object),
где Sh - вновь созданный лист.
6. Open при открытии рабочей книги.
7. SheetActivate при активизации любого рабочего листа книги:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
8. SheetCalculate при перерасчете значений на любом рабочем листе или после вывода измененных данных на диаграмме:
Private Sub Workbook_SheetCalculate(ByVal Sh As Object)
9. SheetChange при изменении пользователем или внешней ссылкой содержимого ячейки на рабочем листе (на диаграмма нет):
Private Sub Workbook_SheetChange(ByVal Sh As Object, -
ByVal Source Sh As Object),
где Source указывает на диапазон, ячейки которого изменились; Sh ссылка на объект Worksheet, где находится ячейка.
10. SheetSelectionChange при иэменении выделенного диапазона ячеек:
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, - ByVal Target Sh As Object)
где Target выбранный диапазон.