「みんな教えて! 選手権!!」開催のお知らせ

ファイルやフォルダ名を変更したいのですが、Name ″変更前のパス″As ″変更後のパス″を使って、フォルダ移動とファイルとフォルダの同時移動のこの2つのマクロを書いて頂けると幸いです。

A 回答 (1件)

以下に、Excel VBAでファイルやフォルダ名を変更するための2つのマクロを記載します。



1. フォルダを移動するマクロ

このマクロは、指定したフォルダを新しい場所へ移動します。

Sub MoveFolder()
Dim sourceFolder As String
Dim destinationFolder As String

' 変更前のフォルダのパス(元の場所)
sourceFolder = "C:\元の場所\フォルダ名"

' 移動先のフォルダのパス(新しい場所)
destinationFolder = "C:\新しい場所\フォルダ名"

' フォルダの移動
On Error Resume Next
Name sourceFolder As destinationFolder
If Err.Number <> 0 Then
MsgBox "フォルダの移動に失敗しました: " & Err.Description, vbCritical
Else
MsgBox "フォルダを移動しました", vbInformation
End If
On Error GoTo 0
End Sub

2. ファイルとフォルダを同時に移動するマクロ

このマクロは、フォルダ内のすべてのファイルとフォルダを指定した場所へ移動します。

Sub MoveFilesAndFolders()
Dim sourcePath As String
Dim destinationPath As String
Dim fileName As String
Dim folderName As String

' 変更前のフォルダパス
sourcePath = "C:\元の場所\"
' 移動先のフォルダパス
destinationPath = "C:\新しい場所\"

' ファイルの移動
fileName = Dir(sourcePath & "*.*") ' フォルダ内の最初のファイルを取得
On Error Resume Next
Do While fileName <> ""
Name sourcePath & fileName As destinationPath & fileName
If Err.Number <> 0 Then
MsgBox "ファイルの移動に失敗しました: " & Err.Description, vbCritical
End If
fileName = Dir ' 次のファイルを取得
Loop

' フォルダの移動
folderName = Dir(sourcePath, vbDirectory) ' フォルダ内の最初のフォルダを取得
Do While folderName <> ""
If folderName <> "." And folderName <> ".." Then ' "."と".."は無視
Name sourcePath & folderName As destinationPath & folderName
If Err.Number <> 0 Then
MsgBox "フォルダの移動に失敗しました: " & Err.Description, vbCritical
End If
End If
folderName = Dir ' 次のフォルダを取得
Loop
On Error GoTo 0

MsgBox "すべてのファイルとフォルダを移動しました", vbInformation
End Sub

注意事項

1. パスの入力
必ず正しいパスを入力してください。パスは存在していないとエラーになります。
2. 名前の衝突
移動先に同じ名前のファイルやフォルダがある場合、エラーが発生します。
3. テスト環境での実行
データ損失を防ぐため、テスト環境で動作確認を行ってください。
4. 権限
移動元と移動先に適切な権限が必要です。

これらのコードでご希望の動作を実現できますが、必要に応じて変更してお使いください。

上記は生成AIの解答です。
参考になれば幸いです。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報

このQ&Aを見た人がよく見るQ&A