Home » ワードマクロ・Word VBAの使い方 » 段落・パラグラフ » Word VBAで最後・末尾の段落を取得する

Word VBAで最後・末尾の段落を取得する

動作検証バージョン:64bit Windows 10 Pro + 32bit Word(バージョン2010 ビルド13328.20292 Microsoft Store)

「word文書の最後の段落を取得するVBA」
という検索キーワードでアクセスがあることに、気が付きました。

[スポンサードリンク]

最終段落を取得するサンプル

以下のようなコードで、アクティブ文書の最後・末尾の段落を取得できます。

Sub 最終段落を取得する()
 Dim cnt As Long
 cnt = ActiveDocument.Paragraphs.Count

 Dim par As Paragraph
 Set par = ActiveDocument.Paragraphs.Item(cnt)

 par.Range.Select
 MsgBox par.Range.Text

End Sub

実行すると、アクティブ文書の最後・末尾の段落が選択され、その文字列がメッセージボックスに表示されます。

最終段落を取得するコードについて

コレクションから最後・末尾の単独オブジェクトを取得する、VBAの定番的なコードです。

コレクションに含まれる単独オブジェクトの個数をCountプロパティで取得し、
  cnt = ActiveDocument.Paragraphs.Count

コレクションのItemメソッドの引数に指定しています。
  Set par = ActiveDocument.Paragraphs.Item(cnt)

Paragraphは選択したり文字列取得したりできない

WordのParagraphは、直接選択したり、文字列を取得したりするようには作られていません。そういった役割はRangeオブジェクトが担っています。

上記のSubプロシージャでは、Paragraphに用意されているRangeプロパティRangeオブジェクトを取得してSelectメソッドで選択し、
 par.Range.Select

Textプロパティで文字列を取得しています。
 MsgBox par.Range.Text

Lastプロパティを使って最終段落を取得するサンプル

Wordライブラリに含まれるコレクションには、最後・末尾の単独オブジェクトを取得するLastプロパティを持っているものがあります。

上図は、オブジェクトブラウザーでWordライブラリを選択して、「Last」を完全一致検索した状態です。

ParagraphsコレクションにもLastプロパティが用意されており、

これを使うことで先ほどより簡単なオブジェクト式で、最後・末尾の段落を表すParagraphオブジェクトを取得できます。

Sub 最終段落を取得する_Lastプロパティ()
 Dim par As Paragraph
 Set par = ActiveDocument.Paragraphs.Last

 par.Range.Select
 MsgBox par.Range.Text

End Sub

先述したCountをItemの引数に指定するコードは、VBAを使うなら理解しておくべきですが、その上で、Lastプロパティも知っておくほうが、意味もよりわかりやすくコードもシンプルになりますから、おすすめです。

最終更新日時:2020-11-18 05:36

[スポンサードリンク]

Home » ワードマクロ・Word VBAの使い方 » 段落・パラグラフ » Word VBAで最後・末尾の段落を取得する

TrackBack:0

TrackBack URL

Home » ワードマクロ・Word VBAの使い方 » 段落・パラグラフ » Word VBAで最後・末尾の段落を取得する

「段落・パラグラフ」の記事一覧

検索


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

.