Wordの編集操作では、編集対象の前や次がどうなっているかがキーになる場面が多くあります。今回紹介するPrevious と Next は、それをマクロに反映できるメソッド/プロパティです。
マクロの記録で記述されるコードにはPrevious や Next が含まれることはほぼないため、あまりなじみがないかも知れません。それだけに、記録されたマクロに適切な条件判断を加味してアップグレードできるわけです。
Previous と Next の使い方
以下のサンプルは、選択している段落に対して、その前の段落と同じスタイルを設定します。
With Selection.Paragraphs(1)
.Style = .Previous.Style
End With
対象の単位は、段落(Paragraph)に限りません。表の列、行、セル(Column、Row、Cell)、フィールド(Field)、Range など様々な単位を対象にできます。
Unit と Count パラメータ
Unit と Count パラメータを使うと、内包または隣接しない対象を取得できます。
'選択範囲の1段落目 > その前の段落
set aPara = Selection.Paragraphs(1).Previous
'選択範囲 > 段落で1個分前
set aPara = Selection.Previous(Unit:=wdParagraph, Count:=1).Paragraphs(1)
'選択範囲 > 次の表(選択範囲内に表がなくてもよい)
Set aTable = Selection.Next(Unit:=wdTable, Count:=1).Tables(1)
Findと組み合わせると最強ツールに
Findによる検索とPrevious と Next を組み合わせると、可用性がぐっと広がり最強ツールになります。例えば、「見出し 1」を検索してその次の段落を処理する、というようなことが可能になります。
