Home » ワードマクロ・Word VBAの使い方 » セクション区切りのあるページ番号を取得するWordマクロ

セクション区切りのあるページ番号を取得するWordマクロ

対象:Word2007, Word2010, Word2013

「ms word vba sectionのあるページ番号」
という検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。

「sectionのあるページ番号」と表現されていますが、セクション区切りの存在するページ番号を取得する、VBA(Visual Basic for Applications)のコードを探している方による検索でしょう。

[スポンサードリンク]

セクション区切りを取得するサンプルマクロ

以下のようなマクロで、アクティブな文書の、セクション区切りの存在するページ番号を、イミディエイトウィンドウに出力することができます。


Sub セクション区切りのあるページ番号を出力する()

 Dim i As Long

 With ActiveDocument.Sections
  For i = 1 To .Count - 1

   Debug.Print _
    .Item(i).Range.Information(wdActiveEndPageNumber)

  Next i
 End With

End Sub

サンプルマクロの解説

アクティブ文書の、全セクション数から「- 1」した回数だけループを回します。
 With ActiveDocument.Sections
  For i = 1 To .Count - 1

なぜ「- 1」いるかというと、セクション区切りのあるページを取得するのに、Informationプロパティの引数に定数・wdActiveEndPageNumberを指定する関係です。

InformationプロパティにwdActiveEndPageNumberを指定すると、指定範囲の終了位置のページ番号が取得できます。

セクションの最後のページ番号が、セクション区切りの存在しているページ番号ということができるわけです。

ただし、最後のセクションについてはセクション区切りが存在していなくても最終ページが取得されてしまいます。それを避けるためにセクションの個数回ループを回すのではなく、セクション数から「- 1」した回数だけループを回しています。

ループの中で、
   Debug.Print _
    .Item(i).Range.Information(wdActiveEndPageNumber)
と、各Sectionオブジェクトを、SectionsコレクションオブジェクトのItemメソッドを使って取得し、そのRangeプロパティでRangeオブジェクトを取得し、そのInformationプロパティを使って、セクションの最後のページ番号を取得して、Debug.Printしています。

[スポンサードリンク]

Home » ワードマクロ・Word VBAの使い方 » セクション区切りのあるページ番号を取得するWordマクロ

TrackBack:0

TrackBack URL

Home » ワードマクロ・Word VBAの使い方 » セクション区切りのあるページ番号を取得するWordマクロ

「ワードマクロ・Word VBAの使い方」の記事一覧

検索


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

.