Accesso agli oggetti Excel dal codice VBA compilato
Quando si scrive codice per il compilatore VBA, occorre utilizzare esplicitamente l’oggetto Application per accedere al modello a oggetti di Excel.
Per un riferimento dettagliato delle proprietà e dei metodi disponibili, consultare la documentazione del Microsoft Office Dev Center.
Esempi
Section titled “Esempi”Riferimento a un Range
Section titled “Riferimento a un Range”Per fare riferimento a una cella o a un intervallo di celle nel foglio di calcolo, occorre anteporre Application all’oggetto Range.
- VBA standard:
Range("A1:A4").Value = 2 - VBA compilato:
Application.Range("A1:A4").Value = 2
Utilizzo delle funzioni del foglio di calcolo
Section titled “Utilizzo delle funzioni del foglio di calcolo”Per utilizzare le funzioni del foglio di calcolo di Excel, occorre utilizzare l’oggetto Application.WorksheetFunction.
Str1 = Application.WorksheetFunction.VLookup(Param1.ComboBox1, Application.Range("A2:C8"), 2, False)
Esempio completo: conversione di una macro
Section titled “Esempio completo: conversione di una macro”Ecco una macro VBA standard:
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 SubEcco lo stesso codice modificato per il compilatore VBA di XLS Padlock. Si noti l’aggiunta dell’oggetto Application e dei parametri espliciti per 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 SubIl modulo VBA originale verrebbe quindi modificato per richiamare la versione compilata:
Sub test() res = CallXLSPadlockVBA("test", "")End Sub