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」を検索してその次の段落を処理する、というようなことが可能になります。