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

すべての文を選択するWordマクロ

対象:Word2007, Word2010, Word2013

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

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

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

[スポンサードリンク]

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

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


Sub 全文選択1()
 ActiveDocument.StoryRanges(wdMainTextStory).Select
End Sub

以前ご紹介した全文削除を行うマクロとよく似たコードです。

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

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

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


Sub 全文選択2()
 ActiveDocument.Range(0, 0).Select
 Selection.WholeStory
End Sub

Rangeプロパティの第1引数・第2引数とも「0」を指定することで文書の先頭を表すRangeオブジェクトを取得して、Selectメソッドを使ってカーソルを文書の先頭に置きます。
 ActiveDocument.Range(0, 0).Select

その後、SelectionオブジェクトのWholeStoryメソッドで選択範囲を文書全体に広げています。
 Selection.WholeStory

WholeStoryメソッドというメソッドがSelectionオブジェクトに用意されているのが興味深い点でもあります。

Rangeを使ったサンプルマクロ

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


Sub 全文選択3()
 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

Rangeプロパティの引数の指定によって、いろいろな範囲を選択することが可能になるため、ここでご紹介した3つのマクロの中では、一番汎用性が高いはずです。

理解していただきやすいように変数を使ったコードをご紹介しましたが、変数を使わずに、
 Sub 全文選択3_2()
  With ActiveDocument
   .Range(0, .Bookmarks("\EndOfDoc").End).Select
  End With
 End Sub
としてもOKです。

[スポンサードリンク]

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

TrackBack:1

TrackBack URL
Range(0, 0)とは from インストラクターのネタ帳
Word VBAのRange(0, 0)というオブジェクト式について解説しています。

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

「Selection」の記事一覧

検索


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

.