• 締切済み

ExcelVBAマクロについて確認させてください。

ExcelVBAマクロについて確認させてください。 1)Wordファイルを開く 2)Wordファイルで、あるキーワードを検索してそのキーワードが存在するページを表示する このようなプログラムを作成したいですが、いい案があればご教授いただきたく思います。

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

何度質問を出しても、あまり回答はないだろう。 >いい案があればご・・ どういう案があるか、の問題ではないだろう。コードを書いてくれというレベルのことではないのか。 エクセル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)
回答No.1

参考に 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

関連するQ&A

専門家に質問してみよう