《VBA・CSS》入門実用Tips集 +α

メニュー一覧


HOME

 エクセルVBA
  ●ワード操作●
  6-3

 wwwcount改造

 CSS(スタイルシート)基本

 BiglobeブログCSS

 CSSいろいろリファレンス

 HTML基本

 HTML簡易リファレンス

 Home > エクセルVBA > 6-3 ワード操作

● EXCELからワードドキュメントを開いて、検索文字列の個数を調べ表示するVBAサンプル

大量のファイルから必要な情報を探す場合、ファイル内の検索文字列発見数で判断すると
より求めている情報に近いファイルを探し出せると思い作ったものです。

サンプルでは、1つのワードドキュメントファイルにある検索文字列の個数を表示しています。
必要に応じて、フォルダ内全てのファイルを検索する・・・等に改造すれば便利かと思います。

画面です


《記述場所》
画面です

〔ソースリスト〕
   (リスト中の¥マークは表示するために全角文字にしています。このまま使う場合は半角にしてください。)

Option Explicit

Private Sub CommandButton1_Click()  '===ワード起動===

  Dim myf As String, mys As String
  Dim openfile_NAME As Variant    '開くファイル名はバリアント型で指定する
  Dim i As Integer              '検索個数格納用
  Dim SEACH_moji As String        '検索文字格納用
  Dim wordApp As Word.Application   'アプリケーションオブジェクト格納用
  Dim wordDoc As Word.Document    'ドキュメントオブジェクト格納用

  'アクティブブックとシート名の取得
  myf = ActiveWorkbook.Name
  mys = ActiveSheet.Name

  Workbooks(myf).Worksheets(mys).Range("C3").Cells = "検索中・・・"

  'ワード起動
  Set wordApp = New Word.Application

  '開くドキュメントファイル名を指定
  openfile_NAME = "C:¥test.doc"

  'ドキュメントファイルを開く
  Set wordDoc = wordApp.Documents.Open(Filename:=openfile_NAME)

  '表示ON(正しく動作していることが確認できたら表示しない(false代入)ほうが高速に処理できる)
  wordApp.Visible = True

  '検索文字列設定
  SEACH_moji = Workbooks(myf).Worksheets(mys).Range("C2").Value

  'ワード検索ループ(文書にある検索文字列の数をiに格納する)
  i = 0
  Do
    wordApp.Selection.Find.Execute FindText:=SEACH_moji  '検索
    If wordApp.Selection.Find.Found = True Then      '文字列を発見した場合
      i = i + 1
    Else                          '無い場合は抜ける
      Exit Do
    End If
  Loop
  'ワードを閉じる
  wordApp.Quit saveChanges:=wdDoNotSaveChanges   'ドキュメントを保存しないで閉じる処理

  'オブジェクトを解放する
  Set wordDoc = Nothing
  Set wordApp = Nothing

  '検索個数を表示する
  Workbooks(myf).Worksheets(mys).Range("C3").Cells = _
         "検索結果 " + SEACH_moji + " は " + CStr(i) + "個見つかりました"

End Sub





○サンプルファイルダウンロード○(準備中)





 − Copyright(2007). 犬神犬 −