0

1 列の文字列 (約 400 行) を持つ Excel ドキュメントがあります。Excel ドキュメントにこれらの文字列がある場合とない場合がある Word ドキュメントもあります。その単一の列の各行に対してそのWord文書でExcelに検索を実行させ、指定された文字列が表示される回数を取得するにはどうすればよいですか? Office 2003 しか持っていません。

ありがとう!

4

1 に答える 1

2

これは、一致の数をカウントし、検索された文字列の横に書き留めるサンプルのExcelマクロです。Office 2007で試しましたが、2003でも動作するはずです。マクロは正規表現を使用するため、「Microsoft VBScript正規表現」ライブラリへの参照をVBAプロジェクトに追加する必要があります(Visual Basic Editor-> Tools-> References)。

Sub GetMatchCount()
  Dim Text, i, re

  ' Replace with your Word document name
  Const WordFileName = "C:\Test.doc"

  With CreateObject("Word.Application")
    .Documents.Open (WordFileName)
    Text = .ActiveDocument.Range.Text
    .Quit
  End With

  Set re = New RegExp
  re.Global = True

  With ActiveSheet.UsedRange
    For i = 1 To .Rows.Count
      re.Pattern = .Cells(i, 1).Value
      .Cells(i, 2).Value = re.Execute(Text).Count
    Next
  End With
End Sub
于 2009-05-29T08:07:36.017 に答える