- 締切済み
ExcelVBAマクロについて確認させてください。
ExcelVBAマクロについて確認させてください。 1)Wordファイルを開く 2)Wordファイルで、あるキーワードを検索してそのキーワードが存在するページを表示する このようなプログラムを作成したいですが、いい案があればご教授いただきたく思います。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- imogasi
- ベストアンサー率27% (4737/17069)
何度質問を出しても、あまり回答はないだろう。 >いい案があればご・・ どういう案があるか、の問題ではないだろう。コードを書いてくれというレベルのことではないのか。 エクセルVBAから入りたい、という質問だが、WordVBA熟達者が少ないと思われ、ワードの解説書も少ないので、ワードのVBAで処理することで我慢したらどうか。 私も以前からWordVBAに関心はあるが、情報が得にくく、20年たっても進歩してない。 ーー そう言うだけではと思うので、例えばの例を挙げてみる。 WEB記事のコードを応用してみる(インストラクターのネタ帳から。後半修正)。 WordでVBEで、標準モジュールに Sub 文字列を検索してページ番号と行番号を取得する() Const SRCH = "吾輩" k = 1 Dim rng As Range Set rng = ActiveDocument.Range(0, 0) rng.Find.Text = SRCH Do While rng.Find.Execute = True ActiveDocument.Tables(1).Cell(k, 1).Select Selection.Text = rng.Information(wdActiveEndAdjustedPageNumber) & vbTab & _ rng.Information(wdFirstCharacterLineNumber) k = k + 1 Loop End Sub 文章例は、WEBにある、青空文庫の「吾輩は猫である」の最初の3ページほど、をワード文書に、コピーしておく。選んだ理由は何もない。 ーー >例文 吾輩は猫である。名前はまだ無い。例の どこで生れたかとんと見当(けんとう)がつかぬ。何でも薄暗いじめじめした所でニャーニャー泣いていた事だけは記憶している。吾輩はここで始めて人間というものを見た。しかもあと・・以下略 ーー その後に、この文書の最後に、挿入ー表ー2列、30行ぐらいの表を手動で作っておく。VBAでもできるが。 そしてVBAを実行。 ーー 結果 やっていることは、「吾輩」という、語句のある、ページと行を表に列挙するもの。 結果で、表の部分は 1 1 1 3 2 1 2 2 2 10 2 11 2 16 2 17 2 19 2 20 3 2 3 3 3 5 3 7 3 8 3 10 3 10 3 13 3 17 以下は略。 ーー エクセルからワードへ、VBAコードで、渡り歩くのは、参照設定や、CreateObjectを使うの例が、WEBにたくさんあるが、十分理解してないと、検索の部分でうまく行かないかもしれない。 ーー もしエクセルの表計算機能がどうしても必要なら、 ワードの表をエクセルに持ってくるのは http://www.atmarkit.co.jp/ait/articles/1603/02/news041.html などに記事がある。
- watabe007
- ベストアンサー率62% (476/760)
参考に Sub Test() Dim objWord As Word.Application 'Microsoft Word 1*.0 Object Library 参照設定 Dim wdDoc As Word.Document Set objWord = CreateObject("Word.Application") objWord.Visible = True objWord.Activate Set wdDoc = objWord.Documents.Open("F:\文書1.docx") With objWord.Selection.Find .Text = "山田" 'キーワード .Execute End With Set objWord = Nothing End Sub