主に言語とシステム開発に関して RSSフィード



2010-03-14

Word VBA の入門用リンク集 (ワードマクロの,サンプルコードやリファレンス)

|


Microsoft Office Word の作業を,VBAマクロで効率化・自動化する。


Excelは便利だが,文書やドキュメントは,やはりWordで作成されるのが一般的。

自分はWordを使わないけども,他人が作った大量のWordファイルを効率的に処理したい,という場合もある。



Excel VBAに比べて,Word VBAの日本語の情報は極めて少ない。

※知名度の比較:

Excel VBA vs Word VBA

http://www.google.co.jp/trends?q=Excel+VBA%2C+Word+VBA


以下は

  • Word VBAの入門コードの簡単なサンプルと,

コーディングの際,Word付属のヘルプはあてにならない。

しかし英語の情報を含めれば,各種Wordオブジェクトの使い方のマニュアルなども,ちゃんとWeb上に見つかる。


Word 2007に対応。



Wordマクロ入門,最初の一歩

Wordマクロの作成方法/実行方法のチュートリアルとして,以下の手順を試されたい。


Word起動。

Alt + F11を押下する。

Word 2003とWord 2007では大幅にUIが異なる。

メニュー上のボタン経由での開き方よりも,ショートカットキー経由での開き方を覚えておいた方が○。


VBE上で,プロジェクトエクスプローラ>Normal右クリック>挿入>標準モジュール

Module1が作成される。

VBEExcel VBAとだいたい同じ外観。

※ここでのNormalとは,Normal.dotのこと。Word外部のファイルにマクロが保存されるのである。

Wordマクロは文書と別のファイルに保存される

http://www.hi-ho.ne.jp/tomita/tips/tips_wd_000.html#content_1_3


Module1内にコードをコピペ

' カーソルのある行を選択状態にします。
Sub select_line()
    Selection.StartOf wdLine
    Selection.EndOf wdLine, wdExtend
End Sub

Ctrl + Sで保存。


Word上に適当な文書(文字列)を書き,適当な行へカーソル移動

マクロ実行

Word2007なら

  • 「開発」タブ>コード>マクロ>select_lineを選択してマクロの実行

マクロが実行され,行が選択される。




リンク集

マクロ開発時に役立つサイト。



基礎的な動かし方:

Web2.0時代のお仕事TipsWordマクロの使い方と登録方法

http://www.hi-ho.ne.jp/tomita/tips/tips_wd_000.html


Word VBA プロシージャ作成入門

http://homepage3.nifty.com/ohno-atlas/VBA/Procedure.htm


各種マクロを作るときのリファレンス

Microsoft.Office.Interop.Word 名前空間(この表を見ながら,関係のありそうな名前をググり続ける)

http://msdn.microsoft.com/ja-jp/library/microsoft.office.interop.word%28office.11%29.aspx


Welcome to the Microsoft Office Word 2007 Developer Reference(ドキュメントモデルの図がある)

http://msdn.microsoft.com/ja-jp/library/bb243297%28en-us%29.aspx


VBA Word:基本的な処理のサンプルコードの一覧表。「新規Wordを開く」など

http://www.ujasiri.com/prglib/vba_word/vba_word.html


Word VBA:要素の参照方法と,印刷設定

http://reiw.net/note/windows/msword_vba.html


Word VBA コマンド辞典:オブジェクト・UserFormについて

http://haoki.hp.infoseek.co.jp/word/Index_OfWordVBA_Commands.html


Word VBAに関するフォーラム / moug Q&A:右側の「フォーラム内検索」を活用すべし

http://www.moug.net/faq/viewforum.php?f=6


サンプルコード(小物):

全テキストボックス中の文字列を置き換える

http://q.hatena.ne.jp/1066371110#a33756


選択中の文字列Google検索する

http://wordvba.cocolog-nifty.com/blog/2008/07/post_86cb.html


サンプルコード(大物):

Word VBAシューティングゲームを作ろう(Selectionオブジェクトを多用する)

http://www1.plala.or.jp/chikada/excel/


トンボアドインを作ろう(独自クラスの利用方法)

http://www.aa.alpha-net.ne.jp/pcfriend/word/WordHeader.htm


ドキュメントモデルの概要図:

  • ActiveDocument:文書全体
    • Paragraph:段落
      • Sentence:文
        • Words:単語
          • Characters:文字
    • Selection:選択箇所
    • Range:選択箇所

簡易説明:Word オブジェクト モデルの概要

http://www.aa.alpha-net.ne.jp/pcfriend/word/string.htm


msdn : Word Object Model Reference(英語)

http://msdn.microsoft.com/ja-jp/library/bb225019%28en-us%29.aspx


msdn : Word オブジェクト モデルの概要(※Visual Studio 2008から利用する場合)

http://msdn.microsoft.com/ja-jp/library/kw65a0we.aspx#understanding