Excel

【Excel】VBAマクロでファイルの存在チェック・確認(複数も)し、なければ作成や削除(あれば)する方法【Dir, FileSystemObject】

当サイトでは記事内に広告を含みます

この記事では、ExcelのVBAマクロを使用して特定のファイルが存在するかどうかをチェックし、その結果に基づいてファイルを作成したり削除したりする方法について解説します。

ポイントとしては、`Dir`関数と`FileSystemObject`オブジェクトを使用することです。

下記の解説では完全な初心者でもわかりやすいように、変数名を独特の表記にしています。実際の利用時には、より標準的な英語表記の変数名に変更することをお勧めします。

それでは、具体的な方法を見ていきましょう!

VBAマクロで指定フォルダ内の指定ファイルの存在チェックをし無ければその名前で保存、あれば末尾に連番をつける方法

それではまず、「指定フォルダ内の指定ファイルの存在チェックをし無ければその名前で保存、あれば末尾に連番をつける方法」について解説していきます。

Alt + F11にてVBE画面を開いて、以下のコードをコピペしましょう。


Sub FileCheckAndSave()
    Dim FilePath As String
    FilePath = "C:\YourFolder\YourFile.xlsx" ' ファイルパスを設定

    Dim i As Integer
    i = 1
    While Dir(FilePath) <> ""
        FilePath = "C:\YourFolder\YourFile" & i & ".xlsx"
        i = i + 1
    Wend

    ' ファイルが存在しない場合、新しく作成
    Workbooks.Add.SaveAs Filename:=FilePath
End Sub

コードのAlt+F8を押し、マクロ選択画面で`FileCheckAndSave`関数を実行します。

このコードでは、指定したファイルパスにファイルが存在するかをチェックし、存在しない場合は新たにファイルを作成します。

既にファイルがある場合は、末尾に連番を付けた新しいファイル名で保存します。

 

VBAマクロで指定フォルダ内の複数の指定ファイルの存在チェックをし、あれば削除、無ければスルーする方法

続いては、「指定フォルダ内の複数の指定ファイルの存在チェックをし、あれば削除、無ければスルーする方法」について解説していきます。この方法では、指定されたExcelシートの特定範囲内のファイル名を順にチェックします。

Alt + F11にてVBE画面を開いて、以下のコードをコピペしましょう。


Sub DeleteIfExists()
    Dim ws As Worksheet
    Set ws = Workbooks("betsu.crv").Sheets("Sheet1")
    Dim r As Range
    Set r = ws.Range("A2:A" & ws.Cells(ws.Rows.Count, "A").End(xlUp).Row)

    Dim FileName As String
    For Each Cell In r
        FileName = "C:\YourFolder\" & Cell.Value
        If Dir(FileName) <> "" Then
            Kill FileName
        End If
    Next Cell


End Sub

コードのAlt+F8を押し、マクロ選択画面で`DeleteIfExists`関数を実行します。

このコードでは、指定されたワークシートのA列にリストアップされたファイル名に基づいて、それぞれのファイルが存在するかをチェックし、存在する場合は削除します。

まとめ VBAマクロでファイルの存在チェ確認(複数も)し、あれば削除などする方法【Dir, FileSystemObject】

この記事ではExcel VBAマクロでファイルの存在チェック・確認(複数も)し、なければ作成や削除(あれば)する方法【Dir, FileSystemObject】を確認しました。

マクロをマスターしてさらに快適に過ごしていきましょう!^_^