VBAでファイルの名前を変更するには
Nameステートメントを使います。
使い方は、
Name OldName As NewName
のOldNameに名前を変更したいファイルのフルパスを入れ、
NewNameに名前を変更した後のフルパスを入れます。
サンプルコードはこちら
下のコードはMyPathで指定したフォルダ内にあるファイル
test.textをAfter_test.txtというファイル名に変更します。
ファイル名を変更するコード:Sub macro100307a() 'ファイル名を変更する
Dim MyPath, MyFile As String Dim OldName, NewName As String MyPath = "任意のフォルダへのパス(最後に\までつける)" OldName = MyPath & "test.txt" NewName = MyPath & "After_test.txt" 'ファイル名を変更 Name OldName As NewName End Sub |
Nameステートメントはファイル名だけでなく
フォルダ名も変更できます。
下のコードは、
MyPathで指定したフォルダの中の
testfolderという名前のフォルダーを
After_testfolderという名前にフォルダ名を変更します。
フォルダ名を変更するコード:Sub macro100307b() 'フォルダ名を変更する
Dim MyPath, MyFile As String Dim OldName, NewName As String MyPath = "任意のフォルダへのパス(最後に\までつける)" OldName = MyPath & "testfolder" NewName = MyPath & "After_testfolder" 'ファイル名を変更 Name OldName As NewName End Sub |
次にある条件のファイルを検索して
その条件を満たすファイル名を変更するコードです。
MyPathで名前を変更したいファイルがあるフォルダまでのパスを指定します。
このコードでは、区切りの\まで付けて指定してください。
検索条件のところ「*.*」は、
指定したフォルダ内のすべてのファイルにマッチします。
下のコードは、指定したフォルダ内のすべてのファイルの名前の前に
「2009」を付け足します。
ファイルを検索してファイル名を変更するコード:Sub macro100307c() 'ファイル名を変更する Dim MyPath, MyFile As String Dim OldName, NewName As String Dim i As Integer
MyPath = "任意のフォルダへのパス(最後に\までつける)" 'ファイルの有無を確認 With Application.FileSearch .LookIn = MyPath .Filename = "*.*" 'すべてのファイル If .Execute() > 0 Then MsgBox .FoundFiles.count & _ " 個のファイルが見つかりました。" For i = 1 To .FoundFiles.count MyFile = Right(.FoundFiles(i), Len(.FoundFiles(i)) - Len(MyPath)) OldName = .FoundFiles(i) NewName = MyPath & "2009" & MyFile 'ファイル名を変更 Name OldName As NewName Next i Else MsgBox "検索条件を満たすファイルはありません。" End If End With End Sub |
目的に合うよう、検索条件など変更して使えば、
大量のファイルの名前を変更するのが楽です。
コメント