Como abrir a aplicação do Word com o vba

Tenho um código. Não funciona 2016.Is é um problema do Office 16

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

Author: Community, 2017-11-07

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
 1
Author: Harsh Dubey, 2017-11-07 13:32:35

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
 2
Author: Darren Bartrup-Cook, 2017-11-07 16:00:41

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?

 0
Author: Vityata, 2017-11-07 13:45:44