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.
Voorbeelden
Section titled “Voorbeelden”Naar een Range verwijzen
Section titled “Naar een Range verwijzen”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
Werkbladfuncties gebruiken
Section titled “Werkbladfuncties gebruiken”Om Excel-werkbladfuncties te gebruiken, moet u het object Application.WorksheetFunction gebruiken.
Str1 = Application.WorksheetFunction.VLookup(Param1.ComboBox1, Application.Range("A2:C8"), 2, False)
Volledig voorbeeld: een macro omzetten
Section titled “Volledig voorbeeld: een macro omzetten”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 onEnd SubHier 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 onEnd SubUw oorspronkelijke VBA-module wordt vervolgens zo aangepast dat deze de gecompileerde versie aanroept:
Sub test() res = CallXLSPadlockVBA("test", "")End Sub