パソコン悪戦苦闘記録

Wordマクロの習得法はまずExcelマクロから、くせ者はRnageオブジェクト

 Wordはよく使われているワープロソフトです。
 そして、Wordで文書を作成するうえで、覚えておくと便利なのが、Wordマクロです。
 Wordマクロは非常に便利なので、いったん習得すると、手放せなくなります。



 では、そのWordマクロを覚えるには、どうすればよいでしょうか。
 Wordマクロを習得するのに最も有効、確実な方法は、Excelマクロ習得と思われます。
というのは、Wordマクロに関する情報は少ないのに対して、Excelマクロに関する情報は実にたくさん出回っているからです。そして、WordマクロもExcelマクロも、VBA(Visual Basic for Applications)という同一のプログラミング言語を使います。
 WordマクロもExcelマクロも、マクロコードの記述はほぼ共通しています。WordとExcelとで、一部、独自のオブジェクトが存在しているに過ぎません。Excelマクロを書くことができるようになれば、Wordマクロも書くことができるようになるのです。

 私も、例に漏れず、まずExcelマクロを覚え、自然とWordマクロも使えるようになっていました。
 

 ただし、Wordマクロのコードを書いていく上で、Wordの分野に独特なのが
   Rangeオブジェクト
です。
 
 Excelマクロで、Rangeとは、セルやセル範囲です。
 対して、WordマクロでRangeとは、文書中の「連続する領域」のことです。
 「Range」というオブジェクト名は同じですが、ExcelとWordとでは、全く別物です。

 Wordマクロのヘルプには、次のように解説されています。
 文書でブックマークを使用する場合と同様に、Visual Basic のプロシージャでは文書の特定の部分を指定するときに Range オブジェクトを使用します。ただし、ブックマークとは異なり、Range オブジェクトを定義するプロシージャの実行中のみ、オブジェクトが存在します。Range オブジェクトは選択範囲から独立しています。つまり、選択範囲を変更しなくてもオブジェクトを定義し操作できます。

 Wordマクロを覚える上で最初のうちは、Rangeが少々扱いにくいと感じてしまいます。

 Wordマクロの利用法の一例が、
  1 文書テンプレートを用意しておく
  2 テンプレート中に、ブックマークを設定しておく
  3 そのブックマークの位置に、マクロでデータを挿入する
というものです。
 その具体例は、
   ⇒ こちらをご覧ください。


 この利用法のように、ブックマーク位置にデータを挿入するコードは、次のような記述になります。
  ThisDocument.BookMarks("氏名").Range.InsertAfter myShimei
  * myShimei は、文字列型の変数で、この変数にテキストを代入しておきます。

 Excelマクロ流でいくと、
  BookMarks("氏名").InsertAfter myShimei
と、つい書いてしまいます。
 BookMarks("氏名")の位置に、myShimeiをインサートする、これでよさそうに思うからです。
 しかし、これでは、コンパイルエラーが出ます。
 Rangeの記述がないためです。

 BookMarks("氏名").Range.InsertAfter myShimei
と、Rangeを記述する必要があるのです。
 考え方としては、「氏名」という名称のブックマークオブジェクトの領域(Range)に、変数myShimeiに格納されたデータを、挿入(InsertAfter)する、
 こういうことなのでしょう。

 最初のうちは、つい、Rangeの記述を落としてしまいがちですが、これも慣れですね。
 経験を重ねると、正確に書けるようになります。


 以上のように、Wordマクロの習得には、Excelマクロから入るのがよいでしょう。。
 Excelマクロ関係の情報は、書籍にしろ、Webサイト情報にしろ、満ち溢れていますから、困ることはありません。

できる大事典 Excel VBA 2016/2013/2010/2007 対応 (できる大事典シリーズ)
国本温子,緑川吉行,できるシリーズ編集部
インプレス



Excel VBA逆引き辞典パーフェクト 第3版
田中 亨
翔泳社



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

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

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

 

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

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

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