パソコン悪戦苦闘記録

Word文書中のBookmarkにテキストを入れるマクロ Rangeを理解

 Word VBA では、Rangeオブジェクトを多用します。よって、Rangeオブジェクトを理解しておくことが必要です。
 Rangeは、「文字列範囲」あるいは、「領域」のことです。

 例えば、Word文書内に、「HogeHoge」という名前のブックマークを設定しておいて、そこに文字列を挿入するマクロは、次のとおりとなります。
ActiveDocument.Bookmarks.Item("HogeHoge").Range.Text = "こんにちは。"

  Word VBA にまだ慣れない初心者は、つい、上記コード中の
「Range」の記述を落としがちです。

 Bookmarksコレクションに用意されているItemメソッドで、単独のBookmarkオブジェクトを取得すれば、そのブックマークにテキストを設定できそうに思えるからです。

 しかし、仮にRangeが入っていないコード書き、それを実行すると、
「コンパイルエラー:メソッドまたはデータメンバーが見つかりません」
というエラーメッセージが出てしまいます。





 Bookmarkオブジェクトには、Textプロパティはありません。BookmarkのRangeプロパティで取得するRangeオブジェクトにTextプロパティが用意されています。「ブックマークの領域」にテキストを設定するわけです。

 VBE(VBエディター)で、自動メンバ表示オプションを有効にしておくと、「Range」の記述漏れ防止に有効です。
 自動メンバ表示は、コード記述の途中で、入力候補をドロップダウン表示してくれる機能です。
 Rangeと記述後、ドットを入力して初めて、Textが候補に現れます。

 Word VBA で多用するRangeオブジェクトを理解するには、
 伊藤潔人著「Excel VBAユーザーのためのWord VBA入門」
がお勧めです。



それでは、また次の記事で
goosyun
名前:
コメント:

※文字化け等の原因になりますので顔文字の投稿はお控えください。

コメント利用規約に同意の上コメント投稿を行ってください。

 

  • Xでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

最近の「VBAプログラミング・マクロ」カテゴリーもっと見る

最近の記事
バックナンバー
人気記事