_基本ExcelVBA

ファイル名が重複していれば別名で保存する【Dir関数】【ExcelVBA】

ファイル名の検索

フォルダにファイルを保存する際に、ファイル名が重複すると保存ができません。
Dir関数を使えばあらかじめ同名ファイルが無いかチェックしてくれます。

重複した場合リネームするように指示すれば、別ファイルとして保存できます。

 

ファイル名を検索して別名で保存するサンプルコード

Public Sub Sample()
    Dim A As String, B As String
    '保存するファイル
    A = ThisWorkbook.Path & "C:\excelsample\新book.xlsx"
    '同じ名前のファイルが存在した場合のリネーム用
    B = ThisWorkbook.Path & "C:\excelsample\旧book.xlsx"

    If Dir(A) <> "" Then  'ファイル名が存在するか確認する
    Name A As B      '既存のAをBにリネーム
    End If
    
    '保存を実行する
    ThisWorkbook.SaveAs Filename:=A
    Debug.Print "保存しました"  'イミディエイトに表示する
    
End Sub

 

注意点

  • 保存先フォルダやファイル名は変更してください。
  • 上記サンプルコードは連続で何度も実行することができません。
    ※試行する際は、新たにブックを開いてください。
  • 既にA、Bと同じファイル名が存在する場合は、保存ができません。
  • ファイル名が重複したとき、連番で別名にする方法はコチラの記事を参考にしてください。

関連記事

コメント

タイトルとURLをコピーしました