Home » エクセルマクロ・Excel VBAの使い方 » Office連携 » 参照設定していない環境でExcel VBAを使ってWord文書を開く

参照設定していない環境でExcel VBAを使ってWord文書を開く

動作検証バージョン:64bit Windows 10 Pro + 32bit Excel & Word(バージョン2211 ビルド15831.20190 Microsoft Store)

「エクセルでwordを開く vba 参照設定しない」
といった検索キーワードでアクセスがありました。

Wordへの参照設定をしていないExcel VBAでWord文書を開くにはどのようなコードを書けばいいのかを調べていた方による検索でしょう。

参照設定していない環境でWord文書を開くサンプルマクロ

Cドライブのtempフォルダーにsample.docxを用意しておいて、以下のExcelマクロをVBEのショートカットキー[F8]を使ってステップ実行してください。

Sub Word文書を開く()
On Error GoTo ErrHandl

 With CreateObject(Class:="Word.Application")
  .Visible = True
  .Documents.Open "C:\temp\sample.docx"
 End With

Exit Sub
ErrHandl:
 Dim msg As String
 Select Case Err.Number
  Case 5174
   msg = "指定されたWord文書が見つかりません。"
  Case Else
   msg = Err.Description & vbCrLf & Err.Number
 End Select
 Err.Clear
 MsgBox msg
End Sub

以下のコードを実行すると、

With CreateObject(Class:="Word.Application")
 .Visible = True

Word文書の開かれていない状態のWordが表示されます。
次の

 .Documents.Open "C:\temp\sample.docx"

を実行すると、Cドライブtempフォルダーのsample.docxが開かれます。

サンプルマクロで行っている処理

VBAのCreateObject関数を使って、

Word.Applicationへの参照を取得した後は、実質的にWord VBAのコードです。

先ほどステップ実行したときに、

With CreateObject(Class:="Word.Application")

の実行後、少し間があったはずです。
この時点で、画面には見えていない状態で実際にはWordが起動しています。

次の、

 .Visible = True

は、Word.ApplicationオブジェクトのVisibleプロパティに

論理値Trueを設定しているコードです。これにより起動しているけれど見えていなかったWordが表示されます。

つづく、

 .Documents.Open "C:\temp\sample.docx"

は、拙著『Excel VBAユーザーのためのWord VBA入門(1): Document・Range・Selectionの基本編』の、「2-7. Add・OpenメソッドはDocumentsが持つ」でも解説しているWord.DocumentsコレクションのOpenメソッドです。

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » Office連携 » 参照設定していない環境でExcel VBAを使ってWord文書を開く

「Office連携」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.