← コード一覧へ戻る
実務ファイル

ファイルの名前を変更する

ファイルを同じ親フォルダー内で改名します。同名の変更先がある場合は中止します。

実行前に確認

  • Windows専用の例です。C:\Dataは例なので、自分で用意した練習用フォルダーの絶対パスに変更してください。
  • 参照しているショートカット・リンク・他のマクロが動かなくなることがあります。事前にコピーを確保してください。

1サンプルコード

Sub Example4004()
    On Error GoTo Failed
    Dim fso As Object
    Set fso = CreateObject("Scripting.FileSystemObject")
    Dim oldPath As String, newPath As String
    oldPath = "C:\Data\旧名称.xlsx"
    newPath = "C:\Data\新名称.xlsx"
    If Not fso.FileExists(oldPath) Then Err.Raise 53, , "変更元がありません"
    If fso.FileExists(newPath) Or fso.FolderExists(newPath) Then Err.Raise 58, , "変更先が既にあります"
    If MsgBox(oldPath & vbCrLf & "→" & newPath & vbCrLf & "名前を変更しますか?", _
        vbYesNo + vbQuestion + vbDefaultButton2) <> vbYes Then Exit Sub
    Name oldPath As newPath
    MsgBox "変更先: " & newPath
    Exit Sub
Failed:
    MsgBox "処理を中止しました: " & Err.Description
End Sub

図で見るファイルの変化

イメージ図

コードの動きを表した概念図です。実際のExcel画面ではありません。

  1. 変更前:同じフォルダー

    C:\Data\ 旧名称.xlsx(あり) 新名称.xlsx(なし)

  2. マクロ:存在を確認

    変更元があり、変更先のファイル・フォルダーがないか調べる

  3. 手動:名前変更を確認

    表示された2つのパスを読み[はい]を選ぶ

  4. マクロ:名前を変更

    Name oldPath As newPath

  5. 変更後:新しい名前

    C:\Data\ 新名称.xlsx 旧名称.xlsxという名前はなくなる

[いいえ]なら変更しません。変更元なし・変更先あり・処理エラーでは中止します。上書きはせず、元の場所で名前を変えるため参照リンクに注意します。

コードの処理を説明する模式図です。実際の画面や実行結果を撮影したものではありません。

使い方・実行手順を確認する5つの手順で、コードの使い方を確認できます
  1. 1

    Windows版のデスクトップExcelで練習用ブックを.xlsm形式で保存します。Alt+F11→[挿入]→[標準モジュール]に、この例だけを貼り付けます。

  2. 2

    練習用の対象をバックアップし、対象ファイルやフォルダー内のファイルを使っているアプリを閉じます。

  3. 3

    oldPathを変更前、newPathを変更後の名前まで含むパスへ変えます。両方の親フォルダーは同じにします。

  4. 4

    実行するSubの内側にカーソルを置き、F5キーを押します。 確認画面で変更前と変更後のパスを読み、正しければ[はい]を押します。

  5. 5

    ファイルが新しい名前になります。同名の変更先が既にある場合は中止し、上書きしません。

使っている機能の公式ドキュメント(Microsoft Learn)