WindowsのパソコンでExcelが利用可能な場合に、作成できるプログラムを紹介します。
複数のExcelから、任意の文字列を探すケースを題材にします。
任意のフォルダを作成して、以下のように、Excelファイルを3つ作成してください。
いずれか1つのファイルについては、任意のセルに「探したい文字列」を入力してください。
セルへの入力イメージ
次にプログラムを作成します。
Windowsの検索機能でExcelを検索して起動してください。
検索欄は、以下のイメージ
Excelファイルが開いたら、そのまま、Altキーを押しながらF11キーを押してください。
以下のような項目をもつ画面が表示されます。
左側の一覧からシート名を含む項目をダブルクリックしてください。
お使いのExcelのバージョンによっては、同じ構成ではないかもしれませんので、Sheet1でなくても問題ありません。
右側のエリアが白くなると、入力可能な状態になるので、以下の内容をコピーして貼り付けてください。
Sub SearchStringInExcelFiles()
Dim folderPath As String
Dim searchString As String
Dim fileName As String
Dim wb As Workbook
Dim ws As Worksheet
Dim cell As Range
Dim found As Boolean
Dim result As String
' === 設定 ===
folderPath = ThisWorkbook.Path ' ←検索対象のフォルダパスを指定
searchString = "探したい文字列" ' ←検索したい文字列を指定
' フォルダパスの末尾に \ がなければ追加
If Right(folderPath, 1) <> "\" Then folderPath = folderPath & "\"
' 最初のファイルを取得
fileName = Dir(folderPath & "*.xlsx")
Do While fileName <> ""
found = False
On Error Resume Next
Set wb = Workbooks.Open(folderPath & fileName, ReadOnly:=True)
On Error GoTo 0
If Not wb Is Nothing Then
For Each ws In wb.Worksheets
Set cell = ws.Cells.Find(What:=searchString, LookIn:=xlValues, LookAt:=xlPart, MatchCase:=False)
If Not cell Is Nothing Then
found = True
Exit For
End If
Next ws
wb.Close SaveChanges:=False
Set wb = Nothing
End If
If found Then
result = result & fileName & vbCrLf
End If
fileName = Dir()
Loop
' 結果を表示
If result <> "" Then
MsgBox "以下のファイルに文字列 """ & searchString & """ が見つかりました:" & vbCrLf & vbCrLf & result
Else
MsgBox "文字列 """ & searchString & """ は見つかりませんでした。"
End If
End Sub
貼り付けができたら、Ctrlキーを押しながら、Sキーを押してください。
保存用の画面が表示されるので、事前に作成したExcelファイルと同じフォルダを保存先に設定して、以下のようにファイル名とファイルの種類を設定して、保存してください。
ここまでできたら、以下の緑のアイコンをクリックしてください。
クリック後に、以下の画面が表示されれば、手順通りになっています。
貼り付けた内容の
searchString = "探したい文字列" ' ←検索したい文字列を指定
の「探したい文字列」を変更すれば、別の文字も探せます。
今回は手順が多く、うまくいかないかもしれませんが、上記のような流れで作成できます。
もし、興味がありましたら、当方のサービスをご検討ください。