「vba word range 広げる」
という検索キーワードをキッカケにして、Rangeを1文字広げるWord VBAのコードをご紹介しました。
Word VBAのRangeオブジェクトには、名前のとおりRangeを広げるExpandメソッドも用意されています。
Range.Expandメソッドを確認するサンプルマクロ
以下のSubプロシージャをステップ実行して、Range.Expandメソッドの引数Unitの指定によって、どのようにRangeが広がるかをご確認ください。
Dim rng As Range
Set rng = Selection.Range
rng.Expand Unit:=wdCharacter
rng.Select
rng.Expand Unit:=wdWord
rng.Select
rng.Expand Unit:=wdSentence
rng.Select
rng.Expand Unit:=wdParagraph
rng.Select
rng.Expand Unit:=wdSection
rng.Select
rng.Expand Unit:=wdStory
rng.Select
サンプルマクロをステップ実行したときの挙動
例えば、以下のような段落が先頭に存在する文書がアクティブな状態で、
Word に用意されているヘッダー、フッター、表紙、テキスト ボックス デザインを組み合わせると、プロのようなできばえの文書を作成できます。たとえば、一致する表紙、ヘッダー、サイドバーを追加できます。[挿入] をクリックしてから、それぞれのギャラリーで目的の要素を選んでください。
カーソルを先頭に置いてから、上記のSubプロシージャを拙著『いちばんやさしいPowerPoint VBAの教本』でも多用しているショートカットキー[F8]を使ってステップ実行してください。
まず、
rng.Expand Unit:=wdCharacter
rng.Select
が実行されると、wdCharacter(文字)単位でExpandされ、文字「W」が選択されます。
次に、
rng.Expand Unit:=wdWord
rng.Select
が実行されると、wdWord(単語)単位でExpandされ、単語「Word」が選択されます。
つづいて、
rng.Expand Unit:=wdSentence
rng.Select
が実行されるとwdSentence(文)単位でExpandされ、文「Word に用意されているヘッダー、フッター、表紙、テキスト ボックス デザインを組み合わせると、プロのようなできばえの文書を作成できます。」が選択されます。
更に、
rng.Expand Unit:=wdParagraph
rng.Select
が実行されると、wdParagraph(段落)単位でExpandされ、段落「Word に用意されているヘッダー、フッター、表紙、テキスト ボックス デザインを組み合わせると、プロのようなできばえの文書を作成できます。たとえば、一致する表紙、ヘッダー、サイドバーを追加できます。[挿入] をクリックしてから、それぞれのギャラリーで目的の要素を選んでください。」が選択されます。
その後の、
rng.Expand Unit:=wdSection
rng.Select
を実行すればセクションが選択され、
rng.Expand Unit:=wdStory
rng.Select
を実行すれば本文全体が選択されます。
Rangeを広げているのはExpandメソッド
なお、上記のSubプロシージャでは
rng.Select
を繰り返し実行していますが、これは目視確認しやすくするために入れているに過ぎません。
Rangeオブジェクトを広げているのはあくまでも、Range.Expandメソッドです。
Home » ワードマクロ・Word VBAの使い方 » Rangeを広げるExpandメソッドを確認しましょう