みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。
当ブログでは、初心者向けのWord VBAに関してのテクニックもお伝えしています。
以下のページにドドンとまとまっています。
ですが、エクセルからWord文書を操作したいときってありますよね。
例えば、フォルダ内のWord文書全てについて、そのページ数や文字数などを調べて、エクセルシートに書き出したいというようなニーズです。
ボタン一つでできたら便利です。
ということで、本シリーズではエクセルVBAでWord文書を操作する方法について、最初の一歩からお伝えしていきます。
まず今回は、初回ですのでエクセルVBAでWord文書を操作するために必要な準備と、最も簡単なプログラムについてお伝えします。
では、行ってみましょう!
Wordを操作するためのライブラリを追加する
まず、事前準備として、エクセルVBAからWordを操作するためには、「Microsoft Word XX.X Object Library 」という名前のライブラリの追加が必要です。
では、その方法をお伝えしていきます。
まず、VBEのメニューから「ツール」→「参照設定」とたどります。
続いて「参照設定」ウィンドウが開きますので、リストの中から「Microsoft Word Xx.X Object Library 」というライブラリを探しましょう。
見つけたらチェックをして、OKです。
これで、ライブラリの追加は完了です。
ちなみに、ライブラリの追加はブックごとに行う必要がありますので、別ブックでWordを操作する場合は、これと同様の作業をする必要があります。
既にライブラリを追加したブックをコピーすれば、ライブラリの追加は不要ですのでおすすめです。
Wordアプリケーションを開く最も簡単なプログラム
では、Wordアプリケーションを開く最も簡単なプログラムを作っていきましょう。
こちらです。
Sub Wordを立ち上げる()
Dim wdApp As Word.Application
Set wdApp = CreateObject("Word.Application")
wdApp.Visible = True
MsgBox "Wordが立ち上がりました"
wdApp.Visible = False
Set wdApp = Nothing
End Sub
このプログラムを実行すると…
このように何にも文書は開いていませんが、Wordアプリケーションが起動します。
では、上記プログラムを解説していきましょう。
Wordアプリケーションオブジェクトの生成とセット
まず、3行目と4行目は、Wordアプリケーションオブジェクトを生成して変数にセットする命令です。
Set 変数名= CreateObject(“Word.Application”)
Wordアプリケーションのオブジェクト型はWord.Applicationです。
これで、指定した変数名(例ではwdApp)で、Wordアプリケーションを操作できるようになります。
Wordアプリケーションを表示
続いて、Wordアプリケーションを表示します。
というのも、オブジェクトを生成しただけでは、画面には何にも表示されないのです。
そのために、WordアプリケーションオブジェクトのVisibleプロパティを操作します。
Trueにすると表示し、Falseにすると非表示にします。
例では5行目で表示、9行目で非表示としていますね。
Wordアプリケーションオブジェクトの破棄
何らかの処理を終えて、Wordアプリケーションオブジェクトが用無しになった暁には、オブジェクトの破棄をします。
破棄をしないと、Wordアプリケーションオブジェクトに使っていたメモリが解放されません。
今回の例では10行目のところです。
まとめ
以上、エクセルVBAでWordアプリケーションを操作する最も簡単なプログラムを作成しました。
まあ、生成して、開いて、閉じて、破棄しただけで、本質的なことは何にもしていませんけどね。
ご安心下さい。
次回以降、ちゃんとWord文書を開いていこうと思います。
どうぞお楽しみに!