「エクセルでwordを開く vba 参照設定しない」
といった検索キーワードでアクセスがありました。
Wordへの参照設定をしていないExcel VBAでWord文書を開くにはどのようなコードを書けばいいのかを調べていた方による検索でしょう。
参照設定していない環境でWord文書を開くサンプルマクロ
Cドライブのtempフォルダーにsample.docxを用意しておいて、以下のExcelマクロをVBEのショートカットキー[F8]を使ってステップ実行してください。
On Error GoTo ErrHandl
With CreateObject(Class:="Word.Application")
.Visible = True
.Documents.Open "C:\temp\sample.docx"
End With
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文書を開く