【VBA】ファイル名を変更する【シンプル】

VBAで
 ・ファイル名を変更
できます!

ここでは
 ・私が可読性が良いと考える方法
を記載します!
※実現方法は複数あります。
※可読性が良い方法を知っておけばよいです。

PR

VBAコード

ここでは例として
 ・デスクトップ配下にあるファイル「aiueo.txt」のファイル名を
 ・「newFileName.txt」へ変更
します。

デスクトップ配下にあるファイル「aiueo.txt」
デスクトップ配下にあるファイル「aiueo.txt」
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

「変更のファイルのパス」を指定します(10行目)。

「変更のファイル」を指定します(12行目)。

「FileSystemObject」の「GetFile」メソッドにより、「Fileオブジェクト」を取得します(17行目)。
※「GetFile」メソッド引数に「変更前のファイルのパス」を指定します。

「Fileオブジェクト」の「Name」プロパティに、「変更後のファイル名」を設定します(17行目)。

PR

実行結果

ファイル名を変更できました。
※ファイル名を「aiueo.txt」から「newFileName.txt」へ変更できました。

実行結果
実行結果
PR

備考(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

「直感的に分かりづらい」ということは、「可読性が良くない」ということです。

PR

参考①

ファイルを移動することもできます。

詳細は以下の記事をご確認ください。

PR

参考②

ファイルをコピーすることもできます。

詳細は以下の記事をご確認ください。

PR

参考③

ファイルを新規作成することもできます。

詳細は以下の記事をご確認ください。

PR

参考④

ファイル名を変更する前に、変更後のファイル名の存在有無を確認した方が良いかもです。

ファイルの存在有無の確認方法は、以下の記事をご確認ください。

PR

参考⑤

ファイル名ではなく、フォルダ名を変更することもできます。

詳細は以下の記事をご確認ください。

PR

参考⑥

「ステートメント」の詳細は、以下の記事をご確認ください。

PR

参考⑦

「Nameステートメント」の詳細は、公式サイトをご確認ください。

PR

参考⑧

上記のVBAコードで使用した以下の詳細は、公式サイトをご確認ください。

●「FileSystemObject」の「GetFile」メソッド


●「Fileオブジェクト」の「Name」プロパティ