Ir al contenido

Acceder a objetos de Excel desde código VBA compilado

Al escribir código para el compilador VBA, debe usar explícitamente el objeto Application para acceder al modelo de objetos de Excel.

Para una referencia detallada de las propiedades y los métodos disponibles, consulte la documentación del Microsoft Office Dev Center.

Para referenciar una celda o un rango de celdas en su hoja de cálculo, debe anteponer Application al objeto Range.

  • VBA estándar: Range("A1:A4").Value = 2
  • VBA compilado: Application.Range("A1:A4").Value = 2

Para usar las funciones de hoja de cálculo de Excel, debe usar el objeto Application.WorksheetFunction.

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

Aquí tiene una macro VBA estándar:

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

Aquí tiene el mismo código modificado para el compilador VBA de XLS Padlock. Observe la adición del objeto Application y los parámetros explícitos para 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

Su módulo VBA original se modificaría entonces para llamar a la versión compilada:

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