Ga naar inhoud

Toegang tot Excel-objecten vanuit gecompileerde VBA-code

Wanneer u code schrijft voor de VBA Compiler, moet u het Application-object expliciet gebruiken om toegang te krijgen tot het objectmodel van Excel.

Voor een uitgebreide referentie van de beschikbare eigenschappen en methoden raadpleegt u de documentatie van het Microsoft Office Dev Center.

Om naar een cel of een celbereik op uw werkblad te verwijzen, moet u Application voor het Range-object plaatsen.

  • Standaard-VBA: Range("A1:A4").Value = 2
  • Gecompileerde VBA: Application.Range("A1:A4").Value = 2

Om Excel-werkbladfuncties te gebruiken, moet u het object Application.WorksheetFunction gebruiken.

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

Hier is een standaard-VBA-macro:

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 is dezelfde code, aangepast voor de VBA Compiler van XLS Padlock. Let op de toevoeging van het Application-object en de expliciete parameters voor 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

Uw oorspronkelijke VBA-module wordt vervolgens zo aangepast dat deze de gecompileerde versie aanroept:

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