フォルダの名前を変更する
フォルダーを同じ親フォルダー内で改名します。同名の変更先がある場合は中止します。
実行前に確認
- Windows専用の例です。C:\Dataは例なので、自分で用意した練習用フォルダーの絶対パスに変更してください。
- 参照しているショートカット・リンク・他のマクロが動かなくなることがあります。事前にコピーを確保してください。
1サンプルコード
Sub Example4013()
On Error GoTo Failed
Dim fso As Object
Set fso = CreateObject("Scripting.FileSystemObject")
Dim oldPath As String, newPath As String
oldPath = "C:\Data\旧名称"
newPath = "C:\Data\新名称"
If Not fso.FolderExists(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図で見るファイルの変化
イメージ図概念図:同じ親フォルダー内で、フォルダー名だけを変えます。
変更前
C:\Data\旧名称 (中身あり)
手動:確認
表示された旧名称→新名称を確認して[はい]
マクロ:改名
NameでC:\Data\旧名称をC:\Data\新名称へ
変更後
C:\Data\新名称 (中身は引き継ぐ)
変更元がない・変更先が存在する・[いいえ]なら中止。元のパスを使うリンクは切れる可能性があります。
コードの処理を説明する模式図です。実際の画面や実行結果を撮影したものではありません。
使い方・実行手順を確認する5つの手順で、コードの使い方を確認できます
- 1
Windows版のデスクトップExcelで練習用ブックを.xlsm形式で保存します。Alt+F11→[挿入]→[標準モジュール]に、この例だけを貼り付けます。
- 2
練習用の対象をバックアップし、対象ファイルやフォルダー内のファイルを使っているアプリを閉じます。
- 3
oldPathを変更前、newPathを変更後の名前まで含むパスへ変えます。両方の親フォルダーは同じにします。
- 4
実行するSubの内側にカーソルを置き、F5キーを押します。 確認画面で変更前と変更後のパスを読み、正しければ[はい]を押します。
- 5
フォルダーが新しい名前になります。同名の変更先が既にある場合は中止し、上書きしません。