Тайны и секреты компьютера | страница 65



":

Set es= GetObject("Путь к файлу Excel'а"))

При желании можно сделать созданный объект Excel видимым:

es.Application.Visible = True

Теперь можно этому объекту es (т. е. просто запущенному Excel'у) посылать команды такие же, как и в макросах Excel'а (предваряя текстом "es.Application." те из команд, которые не требуют прямого указания объекта, — так как надо дать понять программе, что работа идет именно с Excel'ем). Так, чтобы открыть файл Excel'а, можно также дать команду

es.Application.Workbooks.Open FileName:="Путь к документу Excel'а"

а чтобы, например, поместить в первую ячейку открытой книги текст, используйте команду

es.Cells(1, 1). Value = "Это столбец A, строка 1"

Закрыть Excel можно командой

es.Application.Quit

Set es = Nothing

Можно даже вызвать на исполнение макрос, содержащийся в книге Excel. Для этого следует использовать команду

es.Application.Run "имя макроса"

Так что есть простор для творчества.


ProgressBar в ваших программах

Во многих программах для Windows используется такой элемент, как ProgressBar — индикатор, показывающий, на сколько продвинулся тот или иной процесс. В частности, он есть практически во всех программах-инсталляторах. К сожалению, в VBA этот элемент отсутствует, но его можно сделать самостоятельно!

Выглядеть он будет, например, так, как на рис. 5.3.

А делается он следующим образом (предполагается, что у нас есть часть программы, в которой выполняется длинный и долгий цикл: то есть известное нам количество множество однотипных операций, и которую надо снабдить ProgressBar'ом):

1. Создаем небольшую форму и помещаем на нее: надпись с пояснительным текстом (например, "Label1") и две другие надписи, (скажем, «Label2» и "Label3"), низкие и широкие, которые расположим одну над другой (рис. 5.4).

К примеру, их координаты и размеры:

Label2: Top — 45, Left — 15, Height — 15, Width — 250

Label3: Top — 45, Left — 15, Height — 15, Width — 0

Зададим в качестве фонового цвета для «Label2» — серый, а для «Label3» — зеленый (свойство «BackColor», вкладка "Палитра").



Рис. 5.3.ProgressBar в программе на VBA



Рис. 5.4. А вот как он сделан


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

Private Sub UserForm_Activate()

… остальной текст программы, которая должна выполняться во время отображения ProgressBar'а …

Unload Me

End Sub

Все, что находится в теле этого обработчика, будет выполняться, в то время как форма будет находиться на экране. По окончании выполнения программы форма будет выгружена (хотя выгружать ее не обязательно, если после окончания программы в обработчике предполагается продолжение работы с формой). Однако никакие другие события формой обрабатываться в это время не будут.