![](https://excel-vba.work/wp-content/themes/cocoon-master/images/b-woman.png)
VBAで
・ファイル名を変更
できます!
![](https://excel-vba.work/wp-content/themes/cocoon-master/images/b-woman.png)
ここでは
・私が可読性が良いと考える方法
を記載します!
※実現方法は複数あります。
※可読性が良い方法を知っておけばよいです。
VBAコード
ここでは例として
・デスクトップ配下にあるファイル「aiueo.txt」のファイル名を
・「newFileName.txt」へ変更
します。
![デスクトップ配下にあるファイル「aiueo.txt」](https://excel-vba.work/wp-content/uploads/2021/11/vba_changefilename_002.png)
Option Explicit
Sub sample()
Dim fso As Object
Dim filePath As String
Dim newFileName As String
'変更前のファイルのパスを指定
filePath = "C:\Users\user\Desktop\aiueo.txt"
'変更後のファイル名
newFileName = "newFileName.txt"
Set fso = CreateObject("Scripting.FileSystemObject")
'ファイル名を変更
fso.GetFile(filePath).Name = newFileName
'後片付け
Set fso = Nothing
End Sub
実行結果
ファイル名を変更できました。
※ファイル名を「aiueo.txt」から「newFileName.txt」へ変更できました。
![実行結果](https://excel-vba.work/wp-content/uploads/2020/11/vba_changefilename_001.png)
備考(Nameステートメントはオススメしない)
「Nameステートメント」でもファイル名を変更できます。
またファイルの移動(パスの変更)も、「Nameステートメント」によりできます。
ただ「Nameステートメント」だと
・ファイル名の変更をしているのか
・ファイルの移動(パスの変更)をしているのか
が直感的に分かりづらいため、「Nameステートメント」の使用はオススメしません。
Option Explicit
Sub sample()
'ファイル名の変更
Name "C:\Users\user\Desktop\aiueo.txt" As "C:\Users\user\Desktop\newFileName.txt"
End Sub
Option Explicit
Sub sample()
'ファイルの移動(パスの変更)
Name "C:\Users\user\Desktop\aiueo.txt" As "C:\Users\user\フォルダ001\aiueo.txt"
End Sub
参考①
ファイルを移動することもできます。
詳細は以下の記事をご確認ください。
参考②
ファイルをコピーすることもできます。
詳細は以下の記事をご確認ください。
参考③
ファイルを新規作成することもできます。
詳細は以下の記事をご確認ください。
参考④
ファイル名を変更する前に、変更後のファイル名の存在有無を確認した方が良いかもです。
ファイルの存在有無の確認方法は、以下の記事をご確認ください。
参考⑤
ファイル名ではなく、フォルダ名を変更することもできます。
詳細は以下の記事をご確認ください。
参考⑥
「ステートメント」の詳細は、以下の記事をご確認ください。
参考⑦
「Nameステートメント」の詳細は、公式サイトをご確認ください。
参考⑧
上記のVBAコードで使用した以下の詳細は、公式サイトをご確認ください。
●「FileSystemObject」の「GetFile」メソッド
●「Fileオブジェクト」の「Name」プロパティ