VBAでフォルダ名を変更する方法として、FileSystemObjectのGetFolderを使用することで実現できます。
FileSystemObjectは、ファイルシステムオブジェクトを操作するための標準ライブラリであり、ファイルやフォルダの作成や削除、コピー、移動などを簡単に行うことができます。
GetFolderメソッドは、指定されたパスのフォルダオブジェクトを取得します。
取得したフォルダオブジェクトの名前を変更することで、フォルダ名を変更することができます。
ここでは、FileSystemObjectのGetFolderを使ってVBAでフォルダ名を変更する方法について説明します。
【サンプルソース】フォルダ名の変更
以下は、FileSystemObjectのGetFolderを使用して、対象のフォルダオブジェクトを取得し、Nameプロパティを変更します。
そうすることにより、フォルダ名を変更することができます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
Sub RenameFolder() Dim fso As Object Dim folder As Object Dim oldPath As String Dim newName As String ' FileSystemObjectを作成する Set fso = CreateObject("Scripting.FileSystemObject") ' 変更前のフォルダのパスを指定する oldPath = "D:\200_work\100_sample\AAA" ' 変更後のフォルダ名を指定する newName = "BBB" ' フォルダのオブジェクトを取得する Set folder = fso.GetFolder(oldPath) ' フォルダの名前を変更する folder.Name = newName ' オブジェクトを解放する Set folder = Nothing Set fso = Nothing MsgBox "END" End Sub |
上記のサンプルコードでは、まずFileSystemObjectを生成します。
次に、「対象フォルダのパス」と「変更後のフォルダ名」を指定します。
具体的には、「対象フォルダのパス」に「D:\200_work\100_sample\AAA」を指定しています。
また、「変更後のフォルダ名」に「BBB」を指定しています。
GetFolderメソッドに「対象フォルダのパス」を渡して、フォルダオブジェクトを取得しています。
取得したフォルダオブジェクトのNameプロパティに「変更後のフォルダ名」を渡して、フォルダ名を変更します。
結果として、「D:\200_work\100_sample\AAA」は、「D:\200_work\100_sample\BBB」に変更されます。
注意点としては、以下です。
- GetFolderメソッドには、対象フォルダのフルパスを指定する
- 対象フォルダが存在しないとエラーが発生する
- 変更後のフォルダ名は、フォルダ名のみ指定する
- 変更後のフォルダがすでに存在する場合、エラーが発生する
まとめ
VBAでフォルダ名を変更するには、FileSystemObjectのGetFolderメソッドを使用して対象のフォルダオブジェクトを取得し、Nameプロパティを変更します。
実行する前に「変更前のフォルダ」が存在しており、「変更後のフォルダ名」と同名のフォルダが存在しないかを確認する必要があります。
以上です。
最後まで読んでいただきありがとうございました。
この記事をシェアしていただけると喜びます。