Pular para o conteúdo

Acessar objetos do Excel a partir de código VBA compilado

Ao escrever código para o compilador VBA, você deve usar explicitamente o objeto Application para acessar o modelo de objetos do Excel.

Para uma referência detalhada das propriedades e dos métodos disponíveis, consulte a documentação do Microsoft Office Dev Center.

Para referenciar uma célula ou um intervalo de células na sua planilha, você deve anteceder o objeto Range com Application.

  • VBA padrão: Range("A1:A4").Value = 2
  • VBA compilado: Application.Range("A1:A4").Value = 2

Para usar as funções de planilha do Excel, você deve usar o objeto Application.WorksheetFunction.

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

Aqui está uma macro VBA padrão:

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

Aqui está o mesmo código modificado para o compilador VBA do XLS Padlock. Observe a adição do objeto Application e os 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

Seu módulo VBA original seria então modificado para chamar a versão compilada:

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