4

ExcelからMS Wordのウィンドウにアクセスしようとしています。Copy Text from Range from Range in Excel into Word Documentのような、新しい Word ドキュメントまたは特定のドキュメントにアクセスする方法を見つけました 。

しかし、私の場合、ドキュメントの名前がわかりません。それは最後のアクティブなドキュメントでなければなりません。私は次のようなものを使用することを望んでいました

Word.ActiveDocument

しかし、成功しません。また、 Alt+Tab キーストロークをシミュレートして、ウィンドウをアクティブにしようとしました

Application.SendKeys("%{TAB}")

しかし、それも機能しません。ヒントはありますか?

グラフと一部のテキストを Word にコピーし、それに沿ってテキストの書式設定を行うマクロを作成しようとしています。したがって、基本的に、このタスクには任意のアプローチを使用できます。どうもありがとう。

4

1 に答える 1

5

遅延バインディング ( http://support.microsoft.com/kb/245115 ) およびGetObject. Word の複数のインスタンスを開いている場合、特にそれらのいずれかを取得できるとは限りません。

Word のインスタンスを取得すると、ActiveDocumentまたはアプリケーションの現在のにアクセスできますSelection。エラーチェックを行って、必要なものが得られていることを確認することをお勧めします。

    Sub GetWordDocument()
        Dim wdApp As Object

        'Turn off error handling since if the Application is not found we'll get an error
        'Use Late Binding and the GetObject method to find any open instances of Word
        On Error Resume Next
        Set wdApp = GetObject(, "Word.Application")
        On Error GoTo 0

        'Check to see if we found an instance.  If not you can create one if you desire
        If wdApp Is Nothing Then
            MsgBox "No instances of Word found"
            Exit Sub
        End If

        'Check if there are documents in the found instance of Word
        If wdApp.Documents.Count > 0 Then
            wdApp.Selection.TypeText "Cool, we got it" & vbCr

            'You can now access any of the active document properties too
            wdApp.ActiveDocument.Range.InsertAfter "We did indeed"
        End If

        'Clean up the Object when Finished
        Set wdApp = Nothing
    End Sub
于 2013-02-21T20:29:12.690 に答える