
- •Введение в язык макрокоманд vba.
- •Типы данных
- •Описание констант
- •Описание переменных
- •Правила присвоения имен в языке Visual Basic
- •Старшинство операторов
- •Типы макросов.
- •Инструкции присвоения
- •Организация ветвлений. Инструкция If...Then...Else
- •If условие Then [инструкции] [Else инструкции_else]
- •Инструкция Select Case
- •Ввод и вывод информации
- •InputBox(текстовая_строка, заголовок)
- •Циклы в программе
- •Инструкция For...Next
- •Инструкция For Each...Next
- •Инструкция While….Wend
- •Объекты. Свойства. Методы.
- •Объект.Метод Инструкция Set
- •Application.Workbooks("Отчет").Worksheets("Май").Rows(2).Delete
- •Объекты Microsoft Excel
- •Объект Application
- •Объект Workbook. Свойства и Методы.
- •Объект Range
- •Строковые ссылки в стиле а1 или имена диапазонов
- •Числовые индексы строк и колонок
- •Свойства NumberFormat и WrapText
- •Свойство Offset
- •Свойства CurrentRegion и UsedRange
- •Объект Font
- •Объект Interior
Объект Workbook. Свойства и Методы.
На следующем уровне иерархии классов находится семейство Workbooks, которое содержит объекты Workbook.
Открывая или сохраняя файл в Microsoft Excel, Вы фактически открываете или сохраняете рабочую книгу. Поэтому для работы с файлами в Visual Basic используются методы объекта Workbook или набора Workbooks.
Так например,Count - хранит число Workbook в семействе Workbooks (количество открытых книг), Add - метод, позволяющий создать новый объект семейства, т.е. – новую книгу, Open –для открытия существующей книги.
Пример Открытие рабочей книги
Рабочая книга открывается методом Open. Он всегда применяется для набора Workbooks, ссылку на который можно получить через свойство Workbooks. Вот как выглядит код, открывающий файл Bookl.xis (в текущем каталоге) и показывающий значение из ячейки А1 на первом листе данной книги:
Sub OpenBook()
Set myBook = Workbooks.Open(FileName:="BOOK-1")
MsgBox myBook.Worksheets(1).Range("A1").Value
End Sub
Заметьте, что метод Open возвращает объект Workbook, соответствующий только что открытой книге.
Имя файла в этом примере не содержит пути, и таким образом подразумевается, что файл расположен в текущей папке. Это обязательно даст ошибку в период выполнения — как только пользователь сменит текущую папку, Visual Basic не найдет файл.
Вместо того, чтобы жестко зашивать в программу имя файла, передаваемое методу Open, лучше предоставить пользователю возможность выбора нужного файла. Метод GetOpenFilename выводит на экран стандартное диалогово окно Open (Открытие файла), но в итоге данный метод не открывает файл, возвращает строку, которая содержит полный путь и имя выбранного файле
Пример
Вот пример использования метода GetOpenFilename, в котором программа сообщает имя выбранного файла и открывает этот файл:
Sub DemoGetOpenFilenameO
Do
fName = Application.GetOpenFilename
Loop Until fName <> False
MsgBox "Opening " & fName
Set myBook = Workbooks.Open(Filename:=fName)
End Sub
Пример Создание и сохранение рабочей книги
Создать книгу позволяет метод Add набора Workbooks. Значение, возвращенное этим методом, присвойте объектной переменной, и тогда Вы сможете ссылаться на созданную книгу в своей программе.
При первом сохранении новой книги применяйте метод SaveAs, а в после дующем — метод Save. Метод GetSaveAsFilename очень похож на метод GetOpenFilename, описанный в предыдущем разделе. Попробуем создать книгу и сохранить ее методом GetSaveAsFilename:
Sub CreateAndSave()
Set newBook = Workbooks.Add
Do
fName = Application.GetSaveAsFilename
Loop Until fName <> False
newBook.SaveAs Filename:=fName
End Sub
Пример Закрытие рабочей книги
Для закрытия книги предназначен метод Close объекта Workbook. В следующем примере книга закрывается без сохранения последних изменений:
Sub OpenChangeClose()
Do
fName = Application.GetOpenFilename
Loop Until fName <> False
Set myBook =WorkBooks.Open(Filename:=fName)
‘ здесь вносим какие-то изменения в myBook
myBook.Close savechanges:=False
End Sub
Объект Range
Объект Range представляет отдельную ячейку, диапазон ячеек, целую строку или колонку, несколько выделенных областей или трехмерный диапазон. Объект Range несколько необычен, поскольку может представлять как одну, так и множество ячеек. Для объекта Range не предусмотрен специальный объект-набор, и в зависимости от конкретной ситуации его можно считать либо отдельным объектом, либо набором.
Объекты |
Свойства |
Методы |
Font |
CurrentRegion |
Select |
Interior |
UsedRegion |
Clear |
|
Address |
Autofit |
|
Cells |
Copy |
|
Value |
Cut |
|
Text |
|
|
Offset |
|
|
NumberFormat |
|
|
WrapText |
|