2010年01月22日

Word VBA

去年の年末あたりから(暇だったこともあって^^;)、WordのVBAをいろいろといじっていました。

で、以前から漠然と感じてはいたのですが、今回改めて「Excel VBAとは違うなぁ」と実感しました。
もちろんVBAであることには間違いなく、基本的な仕様に変わりはないのですが、単にワープロと表計算というソフトウェアの構造的な違いだけでなく、「考え方」というか「アプローチ」のようなものが結構違っている気がします。

たとえば、操作対象の「範囲」を表すオブジェクトはどちらも「Range」ですが、オブジェクトとその対象範囲との対応を変更したい場合、Excel VBAではプロパティやメソッド(OffsetやSpecialCellsなど)を使い、その戻り値として改めてRangeオブジェクトを取得します。
一方、Word VBAの場合は、メソッドによって対象のオブジェクトそのものを変更してしまいます。つまり、

Set rng = rng.Move(wdCharacter, 5)

のような書き方ではなく

rng.Move wdCharacter, 5

だけで、オブジェクト変数rngが表している文字列範囲が変更されます。

また、Word VBAでは選択範囲を表す「Selection」がそれ自体1つのオブジェクトであり、コードの中で選択範囲を変更するという操作も、Excelの場合とは違って結構キーポイントになり得る気がします。

ただ、いろいろと研究してはみたものの、私の仕事(書籍)として考えると、WordのVBAというのは、正直あまりニーズがあるとは思えません。
特に「作業の自動化」という観点からすると、Wordでの作業を自動化したいと考える人はExcelの場合ほど多くはないでしょう。
しかし、それぞれの業務内容に応じて「Wordに独自の機能を追加できる」と考えれば、便利な活用法はいろいろとあるのではないかと思います。

ちなみに、今回改めてわかったことがもう1つ。
Word VBAのオンラインヘルプについてですが、やはりちょっと不足していたり余分だったり、不親切だったり不正確だったり……この点に関しては、Excel VBAとそれほど変わらないようです(笑)。

※カテゴリはちょっと迷いましたが、まあExcelとも無関係ではないので。(^^;)
※2010/5/3追記 カテゴリはとりあえず「Excel」に入れていましたが、「Word」カテゴリを新設しました。
posted by 土屋和人 at 09:41| Comment(0) | TrackBack(0) | Word
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/34883312
※言及リンクのないトラックバックは受信されません。

この記事へのトラックバック