ファイルがあったらリストにチェックしてくれるマクロ



マクロが入ってるエクセルと同じフォルダのエクセルファイル名が

リストの中にあった時

チェックしてくれるマクロ

下準備

チェックリストを準備する。
チェックリストは氏名の間のスペースを開けないこと。
ファイル名変換のマクロと組み合わせて使うとよい。
sacu.sacu-ri.com

コード

Sub ファイルがあったら〇を入力()
    Dim ws As Worksheet
    Dim Path As String
    Dim cell As Range
    Dim fileName As String
    
    ' リストがあるシートをアクティブシートに設定
    Set ws = ActiveSheet
    
    ' マクロエクセルが保存されているフォルダのパスを取得
    Path = ThisWorkbook.Path & "\"
    
    ' ファイル名を拡張子がxlsxのファイルを取得
    fileName = Dir(Path & "*.xlsx")
    
    ' 繰り返し処理
    Do While fileName <> ""
    
        ' ファイル名から空白を削除し、拡張子を取り除く
        Dim fileNameWithoutExtension As String
        fileNameWithoutExtension = Left(Replace(fileName, " ", ""), InStrRev(Replace(fileName, " ", ""), ".") - 1)
        ' ファイル名を検索
        Set cell = ws.Cells.Find(What:=fileNameWithoutExtension, LookIn:=xlValues, LookAt:=xlWhole)
        If Not cell Is Nothing Then
            ' 該当する行の隣のセルに"〇"を挿入
            cell.Offset(0, 1).Value = "〇"
        Else
            MsgBox "リストに名前がありません" & vbCrLf & fileName
        End If
        ' 次のファイル名を取得
        fileName = Dir
    Loop
    MsgBox "チェック完了"
End Sub

注意点

チェックリストにはスペースを使用しないこと。
ファイル名がチェックシートにない場合はメッセージが表示される。