Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование в Excel.doc
Скачиваний:
21
Добавлен:
03.05.2019
Размер:
1.48 Mб
Скачать

3.3. Работа с объектом Application

Большинство свойств объекта Application Microsoft Excel управляет внешним видом окна Microsoft Excel или глобальными аспектами поведения этого приложения. Например, если видима строка формул, значение свойства DisplayFormulaBar равно True, а если отключено обновление экрана, значение свойства ScreenUpdating равно False.

Кроме того, свойства объекта Application обеспечивают доступ к “нижестоящим” объектам в иерархии, например, к набору Windows (представляющие все открытые в данный момент окна) или набору Workbooks (представляющему все открытые в данный момент рабочие книги). Такие свойства, иногда называемые аксессорами, позволяют проходить по иерархии объектов от вершины (Application) до объектов более низких уровней (Workbook, Worksheet, Range и т.д.).

Некоторые свойства и методы, применимые к объекту Application, применимы и к объектам, расположенным на более низких уровнях иерархии. Использование подобных свойств или методов на уровне Application обычно приводит к изменению всех открытых рабочих книг или листов. Например, метод Calculate применим к объектам Application, Workbook и Worksheet. Выражение Application. Calculate вызывает пересчет данных на всех рабочих листах во всех открытых книгах, а применение этого метода к объектам Workbook или Worksheet позволяет соответственно сузить масштабы пересчета.

3.4. Работа с объектом Workbook

Открывая или сохраняя файл в Microsoft Excel, Вы фактически открываете или сохраняете рабочую книгу. Поэтому для работы с файлами в Visual Basic используются методы объекта Workbook или набора Workbooks.

3.4.1. Открытие рабочей книги

Рабочая книга открывается методом Open. Он всегда применяется для набора Workbooks, ссылку на который можно получить через свойство Workbooks. Вот как выглядит код, открывающий файл Bookl.xls (в текущем каталоге) и показывающий значение из ячейки А1 на первом листе данной книги:

Sub OpenBook1() Set myBook = Workbooks.Open(Filename:="BOOK1.XLS") MsgBox myBook.Worksheets (1) .Range("A1") .Value End Sub

Заметьте, что метод Open возвращает объект Workbook, соответствующий только что открытой книге.

Имя файла в этом примере не содержит пути, и таким образом подразумевается, что файл расположен в текущей папке. Это обязательно даст ошибку в период выполнения — как только пользователь сменит текущую папку, Visual Basic не найдет файл.

Чтобы открыть книгу, хранящуюся в папке, где расположен исполняемый файл, можно использовать свойство Path — оно возвращает строку, определяющую путь к данной папке. Свойство PathSeparator возвращает символ-разделитель, корректный в данной файловой системе, например, обратную косую черту (\) для FAT MS-DOS® и Windows®. В следующем примере показан независимый от файловой системы код, с помощью которого можно открывать Bookl.xls, исходя из предположения, что этот файл хранится в той же папке, что и исполняемый файл.

Sub OpenBook1() EXEPath = Application.Path & Application.PathSeparator fName = EXEPath & "BOOK-1.XLS" Set myBook = Workbooks.Open(Filename:=fName) MsgBox myBook.Worksheets (1).Range ("А1").Value End Sub

Вместо того, чтобы жестко зашивать в программу имя файла, передаваемое методу Open, лучше предоставить пользователю возможность выбора нужного файла. Метод GetOpenFilename выводит на экран стандартное диалоговое окно Open (Открытие файла), но в итоге данный метод не открывает файл, а возвращает строку, которая содержит полный путь и имя выбранного файла. Вот пример использования метода GetOpenFilename, в котором программа сообщает имя выбранного файла и открывает этот файл:

Sub DemoGetOpenFilename() Do fName = Application .GetOpenFilename Loop Until fName <> False MsgBox "Opening " & fName Set myBook = Workbooks.Open(Filename:=fName) End Sub