【VBA】ワードファイルの全文を選択する

エクセルVBAでよく使うコードの備忘録。VBAでワードファイルを操作し、文章全体を選択するコード。

スポンサーリンク

事前準備

VBAでワードファイルを操作するには、参照設定が必要です。VBAのコードエディタから「ツール > 参照設定」と進み、「Microsoft Word XX.X Object Library」にチェックを入れておきます。

共通コード

説明するコードを簡素化するために使用した変数などの共通部分です。今回のテーマの本質的な部分には関係はありません。コードを使用する際はカッコに囲まれた部分([***])を自分のプログラムに合わせて変更してください。

'--- Wordのアプリケーションオブジェクト ---'
Dim objWord As Word.Application
Set objWord = CreateObject("Word.Application")
objWord.Visible = True
    
'--- ドキュメントオブジェクト ---'
Dim objDoc As Word.Document
Set objDoc = objWord.Documents.Open("[ワードファイルのパス]")

全体を選択する1(StoryRanges)

全体を選択する方法はいくつか方法がありますが、この方法がコード的にはシンプルです。「StoryRanges」をつかって全文を選択しています。

objDoc.StoryRanges(wdMainTextStory).Select

全体を選択する2(Start, End)

SelectionのStartとEndを両方指定して無理やり全文を選択することも可能です。Start、Endプロパティの値を他のところでも使っているのであれば、こちらで書いておいた方が統一感があってよいかもしれません。

'--- カーソルを末尾まで移動 ---'
Call objWord.Selection.EndKey(Unit:=wdStory)
    
'--- カーソルの始点を文書冒頭に設定 ---'
objWord.Selection.Start = 0

サンプルコード

サンプルコード(StoryRange)

Public Sub SelectAllDoc()
    
    '--- Wordのアプリケーションオブジェクト ---'
    Dim objWord As Word.Application
    Set objWord = CreateObject("Word.Application")
    objWord.Visible = True
    
    '--- ドキュメントオブジェクト ---'
    Dim objDoc As Word.Document
    Set objDoc = objWord.Documents.Open("[ワードファイルのパス]")
    
    '--- 全体を選択する ---'
    objDoc.StoryRanges(wdMainTextStory).Select
    
    '--- ドキュメントを閉じる ---'
    objDoc.Close
    
End Sub

サンプルコード(Start, End)

Public Sub SelectAllDoc()
    
    '--- Wordのアプリケーションオブジェクト ---'
    Dim objWord As Word.Application
    Set objWord = CreateObject("Word.Application")
    objWord.Visible = True
    
    '--- ドキュメントオブジェクト ---'
    Dim objDoc As Word.Document
    Set objDoc = objWord.Documents.Open("[ワードファイルのパス]")
    
    '--- カーソルを末尾まで移動 ---'
    Call objWord.Selection.EndKey(Unit:=wdStory)
    
    '--- カーソルの始点を文書冒頭に設定 ---'
    objWord.Selection.Start = 0
    
    '--- ドキュメントを閉じる ---'
    objDoc.Close
    
End Sub