コラム

セクション区切りの段落番号を取得する

ワードでの「セクション区切りがある段落の段落番号を取得」は、「カーソルのある段落の段落番号を取得」する方法を応用することで実現できます。

With ActiveDocument.Sections
    Dim j As Long   'セクション番号
    Dim varSection() As Variant             'セクション区切りの段落番号の配列
    ReDim Preserve varSection(.Count - 1)
    'すべてのセクションを対象
    For j = 1 To .Count - 1
        'セクション配列にセクション区切りのある段落番号を入力する
        varSection(j) = ActiveDocument.Range(0, .Item(j).Range.End).Paragraphs.Count
        'アイテム0にセクション区切りの存在を記録する
        varSection(0) = 1
    Next
End With

「カーソルのある段落の段落番号を取得」は、これでできます。

Range(0, Selection.End).Paragraphs.Count

「Selection」の代わりに「Section」(ややこしい!)を入れてやれば、「セクション区切りがある段落番号が取得できます」

Range(0, Sections(1).Range.End).Paragraphs.Count
(この例は、最初のセクション区切りの場合です。)

あとは、For Nextで繰り返せば、すべてのセクション区切りのある段落番号を取得することができます。

本サイトで紹介している「VA公用文」では、これを使ってセクションごとに見出し番号を振り直す処理を実現しています。

コメント

タイトルとURLをコピーしました