Excelで作成可能なプログラムの例

Excelで作成可能なプログラムの例

記事
IT・テクノロジー
WindowsのパソコンでExcelが利用可能な場合に、作成できるプログラムを紹介します。
複数のExcelから、任意の文字列を探すケースを題材にします。
任意のフォルダを作成して、以下のように、Excelファイルを3つ作成してください。
いずれか1つのファイルについては、任意のセルに「探したい文字列」を入力してください。
exc6.jpg
セルへの入力イメージ
exc16.jpg
次にプログラムを作成します。
Windowsの検索機能でExcelを検索して起動してください。
検索欄は、以下のイメージ
検索欄.jpg

Excelファイルが開いたら、そのまま、Altキーを押しながらF11キーを押してください。
以下のような項目をもつ画面が表示されます。
exc116.jpg
左側の一覧からシート名を含む項目をダブルクリックしてください。
お使いの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ファイルと同じフォルダを保存先に設定して、以下のようにファイル名とファイルの種類を設定して、保存してください。
exc111116.jpg

ここまでできたら、以下の緑のアイコンをクリックしてください。
exc11116.jpg
クリック後に、以下の画面が表示されれば、手順通りになっています。
exc1111116.jpg
貼り付けた内容の
searchString = "探したい文字列" ' ←検索したい文字列を指定
の「探したい文字列」を変更すれば、別の文字も探せます。
今回は手順が多く、うまくいかないかもしれませんが、上記のような流れで作成できます。
もし、興味がありましたら、当方のサービスをご検討ください。

サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す