まず、WordのVBEからWordを操作してから、ExcelのVBEからWordを操作する。同じことだけとすごいことしてます。
Wordのオブジェクのモデル
Word上でマクロ記録し、そのコードをExcelで実行するとWordをExcelで操作することになる。
マクロ記録でメソッドやプロパティがわかってもオブジェクト全体のモデルを知っていないとコードを修正、追加できない。
Paragraphs:パラグラフ、段落。改行コードが区切り文字。
Sentences:センテンス、文。「。」が区切り文字。
Words:ワード、単語
Characters:キャラクタ、文字。1文字。
Wordオブジェクトモデルを参考に操作する
次図のような短い文書を作って確認する。イミディエイトウィンドウで、Countプロパティで個数を確認してから、Characters以外の各オブジェクトの中身を出力した。
以下に上の図で使う材料を置きます。
Wordに入れる文書。
1つ目の段落です。
2つ目の段落です。改行が段落の区切り文字になります。
Excel側のVBEのイミディエイトウィンドウで実行するコード
?word.Application.Documents.Count
?word.Application.Documents(1).Name
?word.Application.Documents(1).Paragraphs.Count
?word.Application.Documents(1).Paragraphs(1).Range
?word.Application.Documents(1).Paragraphs(2).Range
?word.Application.Documents(1).Paragraphs(3).Range
?word.Application.Documents(1).Paragraphs(2).Range.Sentences.Count
?word.Application.Documents(1).Paragraphs(2).Range.Sentences(1)
?word.Application.Documents(1).Sentences(1)
?word.Application.Documents(1).Sentences(2)
?word.Application.Documents(1).Sentences(3)
ExcelからWordを操作する
アプリ間のやり取りは、共有できるファイルやネットワークを使う方法が考えられる。しかし、ExcelやWord、SolidWorks(CADソフト)などVBEの「メニュー/ツール/参照設定」で見えるよにWindowsの仕様として組み込まれた仕組みによって他のアプリを起動し、起動したアプリを操作できるインターフェースが公開されている。そのため、比較的簡単に他のアプリの機能を利用することができる。カット&ペースとかOLEとかできるようにアプリ間のデータの受け渡しは以前からできるが、これをプログラムでやったようなもの。
やることは、ExcelのVBEでWordのライブラリを参照設定すれば、WordでVBEの操作と同様にできる。
スマホの方は、ここをクリックするYouTubeで見れます。