- •Норинский л. Ю. Программирование на 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.2. Объекты Worksheet и Worksheets
Семейство Worksheets представляет множество всех объектов Worksheet в рабочей книге. Элементы данного семейства являются подмножеством семейства Sheets, которое включает не только рабочие листы, но и листы диаграмм, листы диалоговых окон и т.п.
Наиболее часто используемым свойством Worksheets является Count, хранящее количество объектов Worksheet в семействе Worksheets.
Семейство Worksheets использует метод Add, с помощью которого можно создать рабочий лист так же, как и методом Add семейства Workbooks можно создать рабочую книгу: Worksheets.Add Before, After, Count, Type, где Before не обязателен, указывает на лист, перед которым требуется добавить новый; использует либо имя, изображенное на ярлыке рабочего листа, либо индекс листа, например Add:=1; After можно вместо 1-го параметра; если оба первых параметра отсутствуют, то новый лист вставляется перед активным листом; Count количество вставляемых листов, по умолчанию 1; Type задает тип листа: xlWorksheet, xlExcel4MacroSheet или xlExcel4IntlMacroSheet, по умолчанию xlWorksheet.
Объект Worksheet - это лист рабочей книги. Он входит как в семейство Worksheets, так и в семейство Sheets. Сослаться на Worksheet можно либо указав имя с ярлыка раб.листа, либо индекс листа. Параметр Worksheet_object, используемый при описании синтаксиса методов, является ссылкой на рабочий лист.
Свойства объекта Worksheet:
1. Name хранит имя с ярлыка рабочего листа:
Sub Name_a_sheet()
Worksheets(1).Name = Application.UserName
End Sub
2. Visible при значении True лист виден на экране (по умолчанию).
Методы объекта Worksheet:
1. Calculate позволяет вручную выполнять вычисления на заданном рабочем листе: ActiveWorksheet.Calculate.
2. Copy копирование рабочего листа: Worksheet_object.Copy Before, After, если опущены оба параметра, то создается новая раб.книга, содержащая требуемый лист.
3. Move перемещение листа в указанное место: Worksheet_object.Move Before, After.
4. Delete удаление листа, например Sheet2.Delete.
4.2.3. Объект Range
Объект Range не входит ни в одно семейство. Объектом Range является ячейка, строка, столбец, несколько расположенных рядом или отдельно ячеек, или трехмерный диапазон.
Диапазон можно задавать следующими способами:
1. Ссылками на ячейки, например Range("G14") или Range("B1:B6").
2. Именем диапазона, например "ИТОГИ" Range("ИТОГИ").
3. Используя объект ActiveCell.
4. Используя объект Selection.
Параметр Range_object, используемый при описании свойств, является ссылкой на диапазон. Свойства объекта Range:
1. Addres хранит расположение диапазона на рабочем листе: Range_object.Addres(RowAbsolute, ColumnAbsolute, _ ReferenceStyle, External, RelativeTo),
где RowAbsolute не обязателен, при True возвращается абсолютный адрес строки (по умолчанию); ColumnAbsolute то же для столбца; если объект Range указывает на диапазон, то оба параметра относятся ко всем строкам и столбцам; по умолчанию используется стиль ссылок А1; если надо использовать нотацию RlCl, присвоить необязательному параметру ReferenceStyle значение xlRlCl (для А1 xlA1); по умолчанию ссылки являются локальными, чтобы возвратить внешнюю ссылку, присвоить необязательному параметру External значение True; RelativeTo дополнительный, задает абсолютные координаты точки, относительно которой вычисляется положение заданного диапазона; если параметры RowAbsolute и ColumnAbsolute имеют значение False, а аргумент ReferenceStyle - значение xlRlC2, то параметр ReferenceStyle указывать обязательно.
2. Cells для ссылки на ячейки, зная их положение относительно заданного объекта Range: Range_object.Cells(Row, Column), где Row не обязателен, относительный адрес строки; Column дополнительный, относительный адрес столбца.
3. CurrentRegion для импорта данных на рабочий лист, позволяет выбрать диапазон данных, границами которого являются пустые строки и пустые столбцы.
4. Formula задает или читает формулы в стиле А1.
5. Name для присваивания имени диапазону.
6. Value для установки или чтения содержимого указанной ячейки.
7. Count хранит количество объектов семейства.
Методы объекта Range:
1. AutoFit задает автоматическую настройку ширины столбца и высоты строки диапазона: Range_object.AutoFit.
2. Clear, ClearComments, ClearContents, ClearFormats, ClearNotes - 1-й метод для очистки диапазона Range_object.Clear; остальные для ликвидации комментариев, содержимого ячеек, форматов и примечаний.
3. Copy - копирование диапазона или другого объекта в буфер обмена; два варианта:
1) копирует объект (в данном случае Range) object.Copy,
2) копирование и вставка Range_object.Copy destination, параметр destination определяет диапазон, в который ведется копирование.
4. Cut вырезает объект и помещает его либо в буфер, либо в указанный диапазон:
Range_object.Cut destination, если параметр отсутствует, то используется буфер.
5. PasteSpecial для вставки диапазона или другого объекта из буфера:
Range_object.PasteSpecial paste, operation, skipBlanks, где paste не обязателен, определяет элементы диапазона: формулы, данные, форматы, комментарии, которые требуется вставить, имеет значения: - xlPasteAll (по умолчанию), xlPasteFormulas, xlPasteValues, xlPasteFormats, xlPasteNotes, xlPasteAllExceptBorders; operation дополнительный, указывает тип вставки, имеет значения: lxlPasteSpecialOperationNone (по умолчанию), lxlPasteSpecialOperationAdd, lxlPasteSpecialOperationSubtract,
lxlPasteSpecialOperationMultiply, lxlPasteSpecialOperationDivide;
skipBlanks при значении True пропускает при вставке пустые ячейки (по умолчанию False).