Eu escrevi um suplemento do Excel em VBA que pega uma lista formatada de endereços e se comunica com minha impressora de etiquetas Brother QL-570 usando o SDK "Label Solutions" da Brother: link
Eu já executei este código anteriormente em outro computador onde o SDK está instalado e funciona perfeitamente. Agora usá-lo na minha máquina não está funcionando. Minha máquina executa o Windows 10 e eu tenho o Excel 2010. Ao executar o suplemento, recebo este erro: "Erro de tempo de execução 249, o ActiveX não consegue criar objeto".
Pelo que entendi, esse erro indica um arquivo ausente. No entanto, olhando em Ferramentas - > Referências no Desenvolvedor Eu posso ver “Biblioteca de Tipos Brother b-PAC 3.1” é verificado após a instalação bem-sucedida. Como tal, não sei qual é o problema.
Por último, não acredito que o código seja o problema, pois isso funciona em outro computador, independentemente de encontrar o código abaixo para referência.
Quais são as possíveis causas desse erro?
MEU CÓDIGO:
O erro está ocorrendo na quinta linha: “Set objDoc = CreateObject (“ bpac.Document ””).
Public Sub PrintLabels(ByVal Control As IRibbonControl)
Dim numRows As Integer
numRows = GetRowCount(2)
Dim objDoc As bpac.Document
Set objDoc = CreateObject("bpac.Document")
For i = 1 To numRows
Dim templateFile As String
Dim mailService As String
mailService = ActiveSheet.Cells(i + 1, 11).Text
If mailService = "1" Then
templateFile = labelTemplateFile1st
ElseIf mailService = "2" Then
templateFile = labelTemplateFile2nd
Else
templateFile = labelTemplateFile
End If
If objDoc.Open(templateFile) Then
Dim printers() As Variant
printers = objDoc.Printer.GetInstalledPrinters()
Dim installedPrinterName As Variant
installedPrinterName = printers(0)
objDoc.SetPrinter printers(0), True
objDoc.StartPrint "Label", bpoDefault 'Sets label cutting to default value.
objDoc.GetObject("ORDERNUM").Text = ActiveSheet.Cells(i + 1, 1).Text
objDoc.GetObject("NAMDRESS").Text = ActiveSheet.Cells(i + 1, 2).Text
objDoc.GetObject("ORDERDETS").Text = ActiveSheet.Cells(i + 1, 3).Text
objDoc.PrintOut 1, bpoDefault
objDoc.EndPrint
objDoc.Close
Else
MsgBox objDoc.ErrorCode
End If
Next i
End Sub
Tags microsoft-excel printer