Accès aux objets Excel depuis le code VBA compilé
Lorsque vous écrivez du code pour le compilateur VBA, vous devez utiliser explicitement l’objet Application pour accéder au modèle objet d’Excel.
Pour une référence détaillée des propriétés et méthodes disponibles, consultez la documentation du Microsoft Office Dev Center.
Exemples
Section titled “Exemples”Référencer un Range
Section titled “Référencer un Range”Pour référencer une cellule ou une plage de cellules de votre feuille de calcul, vous devez préfixer l’objet Range avec Application.
- VBA standard :
Range("A1:A4").Value = 2 - VBA compilé :
Application.Range("A1:A4").Value = 2
Utiliser les fonctions de feuille de calcul
Section titled “Utiliser les fonctions de feuille de calcul”Pour utiliser les fonctions de feuille de calcul d’Excel, vous devez utiliser l’objet Application.WorksheetFunction.
Str1 = Application.WorksheetFunction.VLookup(Param1.ComboBox1, Application.Range("A2:C8"), 2, False)
Exemple complet : conversion d’une macro
Section titled “Exemple complet : conversion d’une macro”Voici une 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 SubVoici le même code modifié pour le compilateur VBA de XLS Padlock. Notez l’ajout de l’objet Application et des paramètres explicites pour 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 SubVotre module VBA original serait ensuite modifié pour appeler la version compilée :
Sub test() res = CallXLSPadlockVBA("test", "")End Sub