Rangeは、「文字列範囲」あるいは、「領域」のことです。
例えば、Word文書内に、「HogeHoge」という名前のブックマークを設定しておいて、そこに文字列を挿入するマクロは、次のとおりとなります。
ActiveDocument.Bookmarks.Item("HogeHoge").Range.Text = "こんにちは。"
Word VBA にまだ慣れない初心者は、つい、上記コード中の
「Range」の記述を落としがちです。
Bookmarksコレクションに用意されているItemメソッドで、単独のBookmarkオブジェクトを取得すれば、そのブックマークにテキストを設定できそうに思えるからです。
しかし、仮にRangeが入っていないコード書き、それを実行すると、
「コンパイルエラー:メソッドまたはデータメンバーが見つかりません」
というエラーメッセージが出てしまいます。
![](https://blogimg.goo.ne.jp/user_image/70/40/13d7dcb329129f8a9a9a12cbeafaf762.jpg)
Bookmarkオブジェクトには、Textプロパティはありません。BookmarkのRangeプロパティで取得するRangeオブジェクトにTextプロパティが用意されています。「ブックマークの領域」にテキストを設定するわけです。
VBE(VBエディター)で、自動メンバ表示オプションを有効にしておくと、「Range」の記述漏れ防止に有効です。
自動メンバ表示は、コード記述の途中で、入力候補をドロップダウン表示してくれる機能です。
Rangeと記述後、ドットを入力して初めて、Textが候補に現れます。
Word VBA で多用するRangeオブジェクトを理解するには、
伊藤潔人著「Excel VBAユーザーのためのWord VBA入門」
がお勧めです。
それでは、また次の記事で
■■■■ goosyun ■■■■