「word マクロ 全文選択」
という検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。
すべての文章を選択するWordマクロ・Word VBA(Visual Basic for Applications)のコードを探している方による検索でしょうか。
「word マクロ 全文選択」
という検索キーワードでは詳細がわかりませんので、全文選択を行うさまざまなタイプのマクロをご紹介しておきます。
Document.Contentを使ったサンプルマクロ
コードとしてシンプルなのは、このマクロでしょう。
ActiveDocument.Content.Select
End Sub
Documentオブジェクトに用意されているContentプロパティを使うと、本文全体を表すRangeオブジェクトを取得できます。
Document.Contentで取得したRangeオブジェクトのSelectメソッドで選択を行っています。
Document.StoryRangesを使ったサンプルマクロ
以前ご紹介した全文削除を行うマクロとよく似たコードでも、本文全体を選択できます。
ActiveDocument.StoryRanges(wdMainTextStory).Select
End Sub
削除の場合は最後にDeleteメソッドを使いましたが、今回は選択ですからSelectメソッドです。
Selection.WholeStoryを使ったサンプルマクロ
カーソルを文書の先頭に置いて、その後、選択範囲を広げるという方法でも全文選択ができます。
ActiveDocument.Range(0, 0).Select
Selection.WholeStory
End Sub
Documentオブジェクトに用意されているRangeメソッドの、第1引数・第2引数とも「0」を指定することで文書の先頭を表すRangeオブジェクトを取得して、Selectメソッドを使ってカーソルを文書の先頭に置きます。
ActiveDocument.Range(0, 0).Select
その後、SelectionオブジェクトのWholeStoryメソッドで選択範囲を文書全体に広げています。
Selection.WholeStory
Rangeを使ったサンプルマクロ
汎用性が高いのが、以下のマクロでしょう。
Dim doc_end As Long
With ActiveDocument
doc_end = .Bookmarks("\EndOfDoc").End
.Range(0, doc_end).Select
End With
End Sub
Bookmarksプロパティの引数に「\EndOfDoc」を指定すると文書の末尾を取得できます。その位置をEndプロパティで取得して変数・doc_endに代入しておきます。
doc_end = .Bookmarks("\EndOfDoc").End
Rangeメソッドの第1引数に文書の先頭を意味する「0」、第2引数に変数・doc_endを指定して、選択しています。
.Range(0, doc_end).Select
引数の指定によって、いろいろな範囲を選択することが可能になるため、ここでご紹介した4つのマクロの中では、一番汎用性が高いはずです。
理解していただきやすいように変数を使ったコードをご紹介しましたが、変数を使わずに、
With ActiveDocument
.Range(0, .Bookmarks("\EndOfDoc").End).Select
End With
としてもOKです。
最終更新日時:2024-02-27 14:05
Home » ワードマクロ・Word VBAの使い方 » Selection » すべての文を選択するさまざまなWordマクロ