Excel VBAでWordを操作するための参照設定
これは始まりの始まりでしかない、ただのメモっすw
最近色々ドタバタで更新できていませんでしたが、ボチボチ再開したい
でも、何か色々データが消えたので、立ち直るのに時間がwww
ま、そーもいってられんから、何気なく、書き始めるのです
■Word文書
仕事の現場で、Word文書の更新状況を確認する必要が出てきまして、始めはファイルの更新日付で管理していたのですが、SVNなどのソース管理システムでWord文書もバージョン管理をするようになりました
そーすると、更新日付でみる必要がなくなり、バージョン管理で十分になったのですが、今度は、ファイルの中に記載された履歴情報などを実際に正しくかけているのか!?という管理が必要になりました
ファイルを開くと、「更新履歴」という表があって、そこに以下の情報が書かれているのです
- ファイルバージョン
- 更新日付
- 更新者名
- 更新内容
これをファイルを1つずつ開いて、文書内を「更新履歴」で検索して、内容をExcelに書き写す・・
そんな悲しい作業が待っていたのです!w
しかも、年だの月だのと言ったフォルダに複数のWord文書が配置されていて、同じ名前のファイルまであるのです!?
ソース管理システムに保存される前の管理方法なんですけどね・・
もーいらなくね???って思うんですけど、文書によっては、枝分かれすることもあるらしく、昔の状態でもファイルを残しておきたいのだそうだ・・
最近作った文書ファイルなら、始めからソース管理システムに保存して、ブランチしていけばいいんでしょうけど、昔からあるファイルってのは、そーもいかないそーなんですw
■VBAでWordを処理したい
というわけで、だったら、ExcelマクロのVBAで、フォルダ内のファイルをそれぞれ開いて、更新履歴の内容をコピーしてくるツールを作っちゃえばいいんじゃないの!?
と思いつきましてー
早速、ネットサーフィーーーーーンを開始!
サンプルのソースなどを見つけたのですが、いきなり、以下のような単語(オブジェクト名)がでてくるのです!
- Word.Application
- Word.Document
ま、何も気にせず、サンプルを実行してみたのですが、エラーが出て動きませんでした!!!
Excelにも同じオブジェクトがあるので、何がダメなんだろう???
と一瞬、疑問に思いましたが・・
普通はオブジェクトを生成する場合は、CreateObjectをするんだけど、ExcelオブジェクトをCreateObjectしたことなんてありません!
■参照設定
理由は簡単ですねー
ExcelのVBAでは、始めから参照設定に「Microsoft Excel xx.x Object Library」が入っていますから!!!
つまり、Wordオブジェクトがエラーになったのは、Wordの「Object Library」が参照設定にないからですね~
と、気が付いてしまえば、「Microsoft Word xx.x Object Library」を参照可能なライブラリファイルの一覧から探して、チェックして「OK」をクリックするだけ!
■実行結果
これで実行すれば、問題なくWordオブジェクトを生成してくれます!
とまー、今回は最初のところだけを記事にしておきます
実際に更新履歴を取得して、Excelに記載してくところは、今後勉強しながら記事にしていきたいと思います!
というわけで、今回は短いですがw
ではでは