Home » エクセルマクロ・Excel VBAの使い方 » Office連携 » Excel VBAでWord文書の本文全体を選択する

Excel VBAでWord文書の本文全体を選択する

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

「excel VBA WORD文書 全選択」
「Excel VBA WORDの開いている文書を選択する」
といった検索キーワードで、時折アクセスがあることに気が付きました。

Excel VBAで、Word文書の本文全体を選択するには、どのようなコードを書けばいいのかを探していらしたのでしょうか。

Word文書の本文全体を選択するサンプルマクロ

本文に何らかの文字列が入力されているWord文書が開かれている状態で、以下のExcelマクロを実行してみてください。

実際には、以下のSubプロシージャに「Excel VBA」と呼ぶべき箇所はありません。

Sub Word文書の本文全体を選択する()
On Error GoTo ErrHandl

 With GetObject(Class:="Word.Application")
  .Documents.Item(1).Content.Select
  MsgBox .Selection.Text
 End With

Exit Sub
ErrHandl:
 Select Case Err.Number
  Case 429
   MsgBox "Wordが起動していないようです。"
  Case 4248
   MsgBox "Wordファイルが開かれていないようです。"
  Case Else
   MsgBox Err.Description & vbCrLf & Err.Number
 End Select
 Err.Clear

End Sub

Documents.Item(1)で取得できる、1つ目のWord文書の本文全体が選択され、その選択されている文字列がメッセージボックスに表示されます。

MsgBox関数の仕様により、長い本文の場合には、全部ではなく途中で途切れた文字列がメッセージボックスに表示されます。

メッセージボックスが表示されてからWord文書をアクティブにすれば、本文全体が選択されていることを確認できます。

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

VBAのGetObject関数を使って、

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

起動済みのWord.Applicationへの参照を取得した後は、実質的にWord VBAです。

WordのApplication.Documentsプロパティを使って、

開いている全Word文書を表すDocumentsコレクションを取得し、

 .Documents.Item(1).Content.Select

DocumentsコレクションのItemメソッドで、

1つ目のWord文書を表すDocumentオブジェクトを取得し、

 .Documents.Item(1).Content.Select

DocumentオブジェクトのContentプロパティで、

本文全体を表すWord.Rangeオブジェクトを取得し、

 .Documents.Item(1).Content.Select

Word.RangeオブジェクトのSelectメソッドを使って、

Word文書の本文全体を選択しています。

 .Documents.Item(1).Content.Select

Word VBAで本文全体を選択するコードはいろいろと考えられますが、Excel VBAから利用する際に、もっともシンプルなコードで済むDocument.Contentプロパティを使ったコードにしました。

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » Office連携 » Excel VBAでWord文書の本文全体を選択する

「Office連携」の記事一覧

検索


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

.