「excel VBA WORD文書 全選択」
「Excel VBA WORDの開いている文書を選択する」
といった検索キーワードで、時折アクセスがあることに気が付きました。
Excel VBAで、Word文書の本文全体を選択するには、どのようなコードを書けばいいのかを探していらしたのでしょうか。
Word文書の本文全体を選択するサンプルマクロ
本文に何らかの文字列が入力されているWord文書が開かれている状態で、以下のExcelマクロを実行してみてください。
実際には、以下のSubプロシージャに「Excel VBA」と呼ぶべき箇所はありません。
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
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プロパティを使ったコードにしました。
- Newer:ISBLANK関数の逆は?
- Older:表の行の先頭セルをWord VBAで取得する
Home » エクセルマクロ・Excel VBAの使い方 » Office連携 » Excel VBAでWord文書の本文全体を選択する