めずらしくWordです
日々忙しい主張はしているところですが,その中でも今まで通りにしたくない,と思うのは
PowerpointVBAがなんとなく制御できるようになったり,ClassModuleがなんとなくできてきたおかげだと思います。
切羽詰まっている中,モチベーションはMaxなので,この機を逃さずいろいろなことを物にすると,この先便利になる。
今まで,WordはVBAで制御しようにも,自分が編集したい部分を探すだけで大変だったわけで,なかなか手を出せませんでした。
でも,VBAという仕組みをもつExcelとPowerpointをいろいろいじってるうちに,なんとなく仕組みがわかるんじゃないかと,自分にしては無謀にもWordの文書もVBAでなんとかしようと考えています。
理由は単純で,文書は基本Wordで様式を渡されるわけで,今までの私なら,制御しにくいからExcelで似たようなものを実現して,変化させたい部分のセルに値を入れて,,ということになるわけですが,微妙に調節したりメンドクサイし時間がかかります。
差し込み印刷は使いこなせているつもりですが,いろいろ手間がありますし,ファイル間の関係が変わると,ソースが無いよと言われたり何かと気を付けることがある。
やることは差し込み印刷と何ら変わらないレベルですが,VBAで制御できることにはかなり意味がありますので,とりあえずそれも自分のために載せておこうと。
ファイルで保存していると,時が経つとどこかにやってしまいますからね。
ブログは楽です。Powerpoint,Excel等のインデックスは今度またきちんと構成しなおしておこうと思いますが,構成していなくても検索でいつでも探せる。
備忘録に最適(ΦωΦ)
さて,前置きが長すぎますし,そんなに時間が無いのでさっさと書く。
目的のWordファイルを開いて,編集する始まり。
Sub test() Dim Wd As Object: Set Wd = CreateObject("Word.Application") 'Dim Wd As Word.Application: Set Wd = New Word.Application Wd.Visible = True Dim TargetDocument As Object 'Dim TargetDocument As Word.Document Dim DocumentName As String: DocumentName = "◇◇◇.docx" Set TargetDocument = Wd.Documents.Open(ThisWorkbook.Path & "\" & DocumentName) Stop End Sub
駆け出しのときは参照設定でインテリセンスに助けてもらうのが一番なので,参照設定した場合のコードもコメントアウトして載せています。
Stopまでで,WordのDocumentを開いて,TargetDocumentに開いた文書をオブジェクトとして入れています。
こうする利点はローカルウィンドウが最大限に活用できること。
ローカルウィンドウから得られる情報はとんでもないですしね。
この辺を見ると,ExcelやPowerpointのVBAの経験から考えると,どうすればいいかだいたいわかってくる。
表の中身はこれで制御できますね。
PowerpointでCharactersやRunsあたりのテキスト関連を触った経験から,普通の文書部分もなんとなく想像はつきます。
こちらもほとんど無知からスタートですが,一気に差し込み印刷程度はやれるようにがんばってみよう。