Zum Inhalt springen

Zugriff auf Excel-Objekte aus kompiliertem VBA-Code

Wenn Sie Code für den VBA Compiler schreiben, müssen Sie das Application-Objekt ausdrücklich verwenden, um auf das Objektmodell von Excel zuzugreifen.

Eine ausführliche Referenz der verfügbaren Eigenschaften und Methoden finden Sie in der Dokumentation des Microsoft Office Dev Center.

Um eine Zelle oder einen Zellbereich auf Ihrem Tabellenblatt zu referenzieren, müssen Sie dem Range-Objekt Application voranstellen.

  • Standard-VBA: Range("A1:A4").Value = 2
  • Kompiliertes VBA: Application.Range("A1:A4").Value = 2

Um Excel-Tabellenfunktionen zu verwenden, müssen Sie das Objekt Application.WorksheetFunction verwenden.

Str1 = Application.WorksheetFunction.VLookup(Param1.ComboBox1, Application.Range("A2:C8"), 2, False)

Vollständiges Beispiel: Umwandlung eines Makros

Section titled “Vollständiges Beispiel: Umwandlung eines Makros”

Hier ist ein Standard-VBA-Makro:

Sub test()
Dim qty As Integer
Dim price As Single, amount As Single
Range("A5").Value = "Item"
ActiveCell.Offset(1, 0).Select
ActiveCell.Value = InputBox("Enter the name of item")
ActiveCell.Offset(0, 1).Select
price = InputBox("Enter the price")
ActiveCell.Value = price
' ... and so on
End Sub

Hier ist derselbe Code, angepasst für den VBA Compiler von XLS Padlock. Beachten Sie die Hinzufügung des Application-Objekts und der expliziten Parameter für InputBox.

Sub test(Param1)
Dim qty As Integer
Dim price As Single, amount As Single
Application.Range("A5").Value = "Item"
Application.ActiveCell.Offset(1, 0).Select
Application.ActiveCell.Value = Application.InputBox("Enter the name of item", "Name", "")
Application.ActiveCell.Offset(0, 1).Select
price = Application.InputBox("Enter the price", "Price", "")
Application.ActiveCell.Value = price
' ... and so on
End Sub

Ihr ursprüngliches VBA-Modul würde dann so angepasst, dass es die kompilierte Version aufruft:

Sub test()
res = CallXLSPadlockVBA("test", "")
End Sub