После завершения процедуры можно снова проверить в Диспетчере задач наличие Excel – приложение будет закрыто.
Другой способ загрузки объекта-приложения основан на использовании переменной, объявленной на уровне модуля:
Sub OLE_Excel_2()
Dim strMsg As String
Set obj_XL = CreateObject(“Excel.Application”)
obj_XL.Visible = True
strMsg = “Нажмите OK для закрытия Excel”
MsgBox Prompt := strMsg, _
Buttons := vbInformation, _
Title := “Информация о запуске Excel”
obj_XL.Quit
Set obj_XL = Nothing
End Sub
Здесь описание
Dim obj_XL As Excel.Application
выполнено на уровне модуля. Объект не закрывается автоматически при завершении процедуры, следовательно, его нужно закрыть с помощью Quit и установить объектную переменную в исходное состояние.
В программе можно управлять и другими свойствами открытого объекта-приложения. Например, оператор
If obj_XL.WindowState <> xlMaximized Then
obj_XL.WindowState = xlMaximized
End If
разворачивает окно объекта-приложения после его запуска на весь экран, если оно еще не было развернуто.
Приведенный ниже код создает экземпляр класса Excel.Sheet рабочего листа Excel, затем рабочий лист заполняется данными из таблицы базы данных Access и полученный результат сохраняется для дальнейшего использования:
Sub MakeXLObject()
On Error GoTo ErrorMakeXLObject
‘ Объявления переменных:
Dim dbSolution As Database
Dim tdfCustomers As TableDef
Dim rstCustomers As Recordset
Dim intRow As Integer
Dim intColumn As Integer
Dim strSavedReport As String
Dim strMsg As String
Dim ws As Workspace
‘ Переменная objELSheet объявлена на уровне модуля как
‘ Dim objXLSheet As Object
‘ Установка ссылок на объекты:
Set ws = DBEngine.CreateWorkspace(“MyWS”, _
“Admin”, “”, dbUseJet)
Set dbSolution = ws.OpenDatabase(“C:\DB\Ole.mdb”)
Set tdfCustomers = dbSolution.TableDefs(“Customers”)
Set rstCustomers = dbSolution.OpenRecordset(“Customers”)
‘ Установка полного пути и имени для сохраняемого ‘ листа-объекта Excel (т.е. для отчета):