ファイルの移動、ファイル名の変更、ファイルの削除

ファイルのリネーム、移動、削除は関連があるので一緒に説明します。
まずは、同じドライブ内の移動、もしくはファイル名の変更です。

Option Explicit
Private Const g_cnsSOUR = "C:\TEMP\AAA\SAMPLE1.txt"   ' 元ファイル
Private Const g_cnsDEST = "C:\TEMP\BBB\SAMPLE2.txt"   ' 先ファイル

' ファイル移動のサンプル①
Sub MoveSample1()
    ' ファイルを移動(この方法は同一ドライブのみ)
    Name g_cnsSOUR As g_cnsDEST                     ' ←※
End Sub
Nameステートメントでは、リネームと同一ドライブ内のファイルの移動ができます。移動とリネームを同時に行なうことも可能です。

ドライブが違う場合のファイルの移動は、「コピー」して「元ファイルを削除」させます。

Option Explicit
Private Const g_cnsSOUR = "C:\TEMP\AAA\SAMPLE1.txt"   ' 元ファイル
Private Const g_cnsDEST = "C:\TEMP\BBB\SAMPLE2.txt"   ' 先ファイル

' ファイル移動のサンプル②(コピーしてから元を削除)
Sub MoveSample2()
    ' ファイルをコピー
    FileCopy g_cnsSOUR, g_cnsDEST                   ' ①
    ' 元ファイルを削除
    Kill g_cnsSOUR                                  ' ②
End Sub
ファイルの移動で、ドライブが同一だと限定できない処理の場合はこちらの方法を採って下さい。
まず、移動元ファイルを移動先のファイル名に「コピー」します。
次に移動元ファイルを削除します。
削除は上記のファイルの移動の削除部分と同じです。

Option Explicit
Private Const g_cnsSOUR = "C:\TEMP\AAA\SAMPLE1.txt"   ' 元ファイル
'Private Const g_cnsDEST = "C:\TEMP\BBB\SAMPLE2.txt"   ' 先ファイル

' ファイル削除のサンプル
Sub DeleteSample1()
    ' 元ファイルを削除
    Kill g_cnsSOUR                                  ' ←※
End Sub

FSO(FileSystemObject)の場合、移動は「MoveFile」メソッドです。
引数は、「コピー元ファイル名」、「コピー先ファイル名」です。

'***************************************************************************************************
'   ファイル移動サンプル                                            Module4(Module)
'
'   作成者:井上治  URL:https://www.ne.jp/asahi/excel/inoue/ [Excelでお仕事!]
'***************************************************************************************************
' [参照設定]
'   ・Microsoft Scripting Runtime
'***************************************************************************************************
Option Explicit

'***************************************************************************************************
'   ■■■ サンプルコード ■■■
'***************************************************************************************************
'* 処理名 :MoveFileSample1
'* 機能  :ファイル移動サンプル①(単一ファイル)
'---------------------------------------------------------------------------------------------------
'* 返り値 :(なし)
'* 引数  :(なし)
'---------------------------------------------------------------------------------------------------
'* 機能説明:単一ファイルを名前を変えて別フォルダに移動する
'* 注意事項:移動先フォルダに対象ファイル名のファイルがある場合はエラーとなる
'***************************************************************************************************
Sub MoveFileSample1()
    '-----------------------------------------------------------------------------------------------
    Const cnsSOUR As String = "C:\TEMP\AAA\SAMPLE1.txt"             ' 元ファイル
    Const cnsDEST As String = "C:\TEMP\BBB\SAMPLE2.txt"             ' 先ファイル
    Dim objFso As FileSystemObject                                  ' FileSystemObject
    Set objFso = New FileSystemObject
    ' FSOによるファイル移動
    objFso.MoveFile cnsSOUR, cnsDEST                ' ←※
    Set objFso = Nothing
End Sub

'***************************************************************************************************
'* 処理名 :MoveFileSample2
'* 機能  :ファイル移動サンプル②(ワイルドカード)
'---------------------------------------------------------------------------------------------------
'* 返り値 :(なし)
'* 引数  :(なし)
'---------------------------------------------------------------------------------------------------
'* 機能説明:移動元フォルダの全てのテキストファイルを移動先フォルダに移動する
'* 注意事項:移動先フォルダに対象ファイル名のファイルがある場合はエラーとなる
'***************************************************************************************************
Sub MoveFileSample2()
    '-----------------------------------------------------------------------------------------------
    Const cnsSOUR As String = "C:\TEMP\AAA\*.txt"                   ' 元ファイル(拡張子txt全て)
    Const cnsDEST As String = "C:\TEMP\BBB\"                        ' 先フォルダ(右端\必須)
    Dim objFso As FileSystemObject                                  ' FileSystemObject
    Set objFso = New FileSystemObject
    ' FSOによるファイル移動
    objFso.MoveFile cnsSOUR, cnsDEST                ' ←※
    Set objFso = Nothing
End Sub

'--------------------------------------<< End of Source >>------------------------------------------
FSO(FileSystemObject)MoveFileメソッドでは、ドライブを超えたファイル移動も可能です。
②の方のサンプルで分かるように「ワイルドカード」による移動が可能です。 これにより、複数のファイルをまとめて移動するなどが可能となりますが、処理中に開いているファイルがあるとか、移動先に既に同名のファイルが存在するなどでエラーになると移動済み分の復旧などは行なわれず、エラー時点で単に中断となります。

この他、FSO(FileSystemObject)ではフォルダの移動(MoveFolderメソッド)も用意されています。

'***************************************************************************************************
'   フォルダ移動サンプル                                            Module5(Module)
'
'   作成者:井上治  URL:https://www.ne.jp/asahi/excel/inoue/ [Excelでお仕事!]
'***************************************************************************************************
' [参照設定]
'   ・Microsoft Scripting Runtime
'***************************************************************************************************
Option Explicit

'***************************************************************************************************
'   ■■■ サンプルコード ■■■
'***************************************************************************************************
'* 処理名 :MoveFileSample1
'* 機能  :フォルダ移動サンプル(ワイルドカード)
'---------------------------------------------------------------------------------------------------
'* 返り値 :(なし)
'* 引数  :(なし)
'---------------------------------------------------------------------------------------------------
'* 機能説明:移動元フォルダの全てのファイルを移動先フォルダに移動する
'* 注意事項:移動先フォルダに同名のサブフォルダがある場合はエラーとなる
'***************************************************************************************************
Sub MoveFolderSample1()
    '-----------------------------------------------------------------------------------------------
    Const cnsSOUR As String = "C:\TEMP\AAA\*"                       ' 元フォルダ(配下の全サブフォルダ)
    Const cnsDEST As String = "C:\TEMP\BBB\"                        ' 先フォルダ
    Dim objFso As FileSystemObject                                  ' FileSystemObject
    Set objFso = New FileSystemObject
    ' FSOによるフォルダ移動
    objFso.MoveFolder cnsSOUR, cnsDEST              ' ←※
    Set objFso = Nothing
End Sub

'--------------------------------------<< End of Source >>------------------------------------------

FSO(FileSystemObject)の場合、削除は「DeleteFile」メソッドです。
引数は、「削除対象ファイル名」、「読み取り専用も削除するかの区分(Force)」です。

'***************************************************************************************************
'   ファイル削除サンプル                                            Module6(Module)
'
'   作成者:井上治  URL:https://www.ne.jp/asahi/excel/inoue/ [Excelでお仕事!]
'***************************************************************************************************
' [参照設定]
'   ・Microsoft Scripting Runtime
'***************************************************************************************************
Option Explicit

'***************************************************************************************************
'   ■■■ サンプルコード ■■■
'***************************************************************************************************
'* 処理名 :DeleteFileSample1
'* 機能  :ファイル削除サンプル①(単一ファイル)
'---------------------------------------------------------------------------------------------------
'* 返り値 :(なし)
'* 引数  :(なし)
'---------------------------------------------------------------------------------------------------
'* 機能説明:単一ファイルを削除する
'* 注意事項:
'***************************************************************************************************
Sub DeleteFileSample1()
    '-----------------------------------------------------------------------------------------------
    Const cnsSOUR As String = "C:\TEMP\AAA\SAMPLE1.txt"             ' 対象ファイル
    Dim objFso As FileSystemObject                                  ' FileSystemObject
    Set objFso = New FileSystemObject
    ' FSOによるファイル削除
    objFso.DeleteFile cnsSOUR, True                 ' ←※
    Set objFso = Nothing
End Sub

'***************************************************************************************************
'* 処理名 :DeleteFileSample2
'* 機能  :ファイル削除サンプル②(ワイルドカード)
'---------------------------------------------------------------------------------------------------
'* 返り値 :(なし)
'* 引数  :(なし)
'---------------------------------------------------------------------------------------------------
'* 機能説明:対象フォルダの全てのテキストファイルを削除する
'* 注意事項:
'***************************************************************************************************
Sub DeleteFileSample2()
    '-----------------------------------------------------------------------------------------------
    Const cnsSOUR As String = "C:\TEMP\AAA\*.txt"                   ' 元ファイル(拡張子txt全て)
    Dim objFso As FileSystemObject                                  ' FileSystemObject
    Set objFso = New FileSystemObject
    ' FSOによるファイル削除
    objFso.DeleteFile cnsSOUR, True                 ' ←※
    Set objFso = Nothing
End Sub

'--------------------------------------<< End of Source >>------------------------------------------
②の方のサンプルで分かるように「ワイルドカード」による削除が可能です。 これにより、複数のファイルをまとめて削除するなどが可能となりますが、処理中に開いているファイルがあるなどでエラーになると削除済み分の復旧などは行なわれず、エラー時点で単に中断となります。

この他、FSO(FileSystemObject)ではフォルダの削除(DeleteFolderメソッド)も用意されています。

'*******************************************************************************
'   フォルダ削除サンプル
'
'   作成者:井上治  URL:https://www.ne.jp/asahi/excel/inoue/ [Excelでお仕事!]
'*******************************************************************************
' [参照設定]
'   ・Microsoft Scripting Runtime
'*******************************************************************************
Option Explicit

'***************************************************************************************************
'   ■■■ サンプルコード ■■■
'***************************************************************************************************
'* 処理名 :DeleteFolderSample1
'* 機能  :フォルダ削除サンプル(ワイルドカード)
'---------------------------------------------------------------------------------------------------
'* 返り値 :(なし)
'* 引数  :(なし)
'---------------------------------------------------------------------------------------------------
'* 機能説明:対象フォルダを内部のサブフォルダ、全てのファイル含めて削除
'* 注意事項:使用中のファイルがある場合はその時点でエラーとなる
'***************************************************************************************************
Sub DeleteFolderSample1()
    '-----------------------------------------------------------------------------------------------
    Const cnsSOUR As String = "C:\TEMP\AAA"                         ' 削除フォルダ
    Dim objFso As FileSystemObject                                  ' FileSystemObject
    Set objFso = New FileSystemObject
    ' FSOによるフォルダ削除
    objFso.DeleteFolder cnsSOUR, True               ' ←※
    Set objFso = Nothing
End Sub

'--------------------------------------<< End of Source >>------------------------------------------