エクセル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