つれづれ電脳記(日くらしPCに向かひて)

つれづれなるままに、日くらしPCに向かひて、その悪戦苦闘ぶりをそこはかとなく書き付くるおじさん。たまに雑談[管理人:goosyun]

つれづれなるままに、日くらしPCに向かひて、デジタル関係の悪戦苦闘ぶりをそこはかとなく書き付くるおじさんです。
たまに雑談してます。連絡・問い合わせフォームは、ページ最下部に置いています。[著者(運営人):goosyun]

(当ブログには本文中に広告リンクが含まれています。)

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