Home » ワードマクロ・Word VBAの使い方 » Selection » すべての文を選択するさまざまなWordマクロ

すべての文を選択するさまざまなWordマクロ

対象:Word2007, Word2010, Word2013

「word マクロ 全文選択」
という検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。

すべての文章を選択するWordマクロ・Word VBA(Visual Basic for Applications)のコードを探している方による検索でしょうか。

「word マクロ 全文選択」
という検索キーワードでは詳細がわかりませんので、全文選択を行うさまざまなタイプのマクロをご紹介しておきます。

Document.Contentを使ったサンプルマクロ

コードとしてシンプルなのは、このマクロでしょう。

Sub 本文全体を選択する_1()
 ActiveDocument.Content.Select
End Sub

Documentオブジェクトに用意されているContentプロパティを使うと、本文全体を表すRangeオブジェクトを取得できます。
Document.Contentで取得したRangeオブジェクトのSelectメソッドで選択を行っています。

Document.StoryRangesを使ったサンプルマクロ

以前ご紹介した全文削除を行うマクロとよく似たコードでも、本文全体を選択できます。

Sub 本文全体を選択する_2()
 ActiveDocument.StoryRanges(wdMainTextStory).Select
End Sub

削除の場合は最後にDeleteメソッドを使いましたが、今回は選択ですからSelectメソッドです。

Selection.WholeStoryを使ったサンプルマクロ

カーソルを文書の先頭に置いて、その後、選択範囲を広げるという方法でも全文選択ができます。

Sub 本文全体を選択する_3()
 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を使ったサンプルマクロ

汎用性が高いのが、以下のマクロでしょう。

Sub 本文全体を選択する_4()
 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マクロ

「Selection」の記事一覧

検索


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

.