Vba Makro Code: So erstellt man ein Excel Workbook und Sheet zur Laufzeit ohne Excel Verweis
So erstellt man ein Excel Dokument aus einer anderen Microsoft Office Anwendung wie Word oder Access, ohne dass man hierzu in der VBA Anwendung einen Verweis auf die Excel Version machen müsste
Erst erstellt man ein Object als Excel.Application (das ist Late Binding)
Dabei schaut Windows nach, ob es ein Programm in der Registry mit Excel.Application findet
'Dim objExcel As New Excel.Application Dim objExcel As Object Set objExcel = CreateObject("Excel.Application") |
Dann erstellt man ein neues Workbook als neutrales Object, indem man dem Excel Programm sagt, es solle aus sich selbst unter .Workbooks ein neues anfügen.
Bei dieser Form der Programmierung schaut das Programm erst zur Laufzeit nach, ob es überhaupt Workbooks hat und den Begriff verwenden kann.
Dim objWorkbook As Object Set objWorkbook = objExcel.Workbooks.Add |
Diesem Workbook fügt man dann ein Sheet hinzu in der gleichen weise.
Dim objSheet As Object Set objSheet = objWorkbook.Sheets.Add 'not Set objSheet = CreateObject("Excel.Worksheet") |
mit Late Binding,
Option Compare Database Option Explicit On
Private Sub BtnExcel_Click() 'Dim objExcel As New Excel.Application Dim objExcel As Object Set objExcel = CreateObject("Excel.Application")
objExcel.Workbooks.Add objExcel.DisplayAlerts = False 'Dim objWorkbook As Workbook '*Early Binding on Excel.Reference Dim objWorkbook As Object Set objWorkbook = objExcel.Workbooks.Add '*not CreateObject("Excel.Workbook")
Dim objSheet As Object Set objSheet = objWorkbook.Sheets.Add 'not Set objSheet = CreateObject("Excel.Worksheet")
objSheet.Cells(1, 1).Value = "Test Excel" objExcel.ActiveWorkbook.SaveAs CurrentProject.Path & "\Demo_Access_Excel" objExcel.Quit Set objExcel = Nothing
End Sub |