Como abrir a aplicação do Word com o vba
Dim objWordApp as Word.Application
Dim objWordDoc as Word.document
Set objWordApp = new Word.application
Tenho um erro ao carregar o DLL .Eu já incluí a biblioteca Microsoft word 16.0 Object Library
relativamente a: Anna
3 answers
Não tenho a certeza do que correu mal para ti, mas se só quiseres abrir um novo documento do word com o teu escritório padrão do MS, então podes usar esta paz de código
Sub wordopener()
Dim objWord
Dim objDoc
Set objWord = CreateObject("Word.Application")
Set objDoc = objWord.Documents.Add
objWord.Visible = True
End Sub
Geralmente tenho um ficheiro BAS
que contém a função 'CreateWord' que arrasto para qualquer livro de trabalho/Base de dados que precise dela.
Primeiro testa para ver se a palavra já está aberta usando GetObject
. Se isso retorna um erro, cria uma instância de palavra usando CreateObject
.
A aplicação palavra pode então ser aberta usando simplesmente Set oWD_App = CreateWord
.
Sub Test()
Dim oWD_App As Object
Dim oWD_Doc As Object
Set oWD_App = CreateWord
With oWD_App
Set oWD_Doc = .Documents.Add
End With
End Sub
Public Function CreateWord(Optional bVisible As Boolean = True) As Object
Dim oTempWD As Object
On Error Resume Next
Set oTempWD = GetObject(, "Word.Application")
If Err.Number <> 0 Then
Err.Clear
On Error GoTo ERROR_HANDLER
Set oTempWD = CreateObject("Word.Application")
End If
oTempWD.Visible = bVisible
Set CreateWord = oTempWD
On Error GoTo 0
Exit Function
ERROR_HANDLER:
Select Case Err.Number
Case Else
MsgBox "Error " & Err.Number & vbCr & _
" (" & Err.Description & ") in procedure CreateWord."
Err.Clear
End Select
End Function
Está a tentar usar a ligação precoce. É aconselhável, porque é um pouco mais rápido e lhe dá intelecto, o que é bom. No entanto, para usá-lo, você deve adicionar as bibliotecas correspondentes.
No entanto, se usar a ligação mais lenta, não precisa de adicionar bibliotecas. Não tem intelecto e seria um pouco mais lento (mas provavelmente não perceptível).
Tenta assim:
Option Explicit
Sub TestMe()
Dim objWord As Object
Dim objDoc As Object
Set objWord = CreateObject("Word.Application")
Set objDoc = objWord.Documents.Add
objWord.Visible = True
End Sub
Ligação precoce vs. ligação tardia: quais são as comparações benefícios e desvantagens?