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

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

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

' ファイル移動のサンプル@
Sub MOVE_SAMPLE1()

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

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

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

' ファイル移動のサンプルA
Sub MOVE_SAMPLE2()

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

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

' ファイル削除のサンプル
Sub DELETE_SAMPLE()

    ' 元ファイルを削除
    Kill cnsSOUR
End Sub

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

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

'*******************************************************************************
'   ファイル移動サンプル@(単一ファイル)
'*******************************************************************************
Sub MOVEFILE_SAMPLE1()
    Const cnsSOUR = "C:\AAA\SAMPLE1.txt"    ' 元ファイル
    Const cnsDEST = "C:\BBB\SAMPLE2.txt"    ' 先ファイル
    Dim objFSO As FileSystemObject  ' FSO

    Set objFSO = New FileSystemObject
    ' FSOによるファイルコピー
    objFSO.MoveFile cnsSOUR, cnsDEST
    Set objFSO = Nothing
End Sub

'*******************************************************************************
'   ファイル移動サンプルA(ワイルドカード)
'*******************************************************************************
Sub MOVEFILE_SAMPLE2()
    Const cnsSOUR = "C:\AAA\*.txt"          ' 元ファイル(拡張子txt全て)
    Const cnsDEST = "C:\BBB\"               ' 先フォルダ(右端\必須)
    Dim objFSO As FileSystemObject  ' FSO

    Set objFSO = New FileSystemObject
    ' FSOによるファイルコピー
    objFSO.MoveFile cnsSOUR, cnsDEST
    Set objFSO = Nothing
End Sub

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

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

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

'*******************************************************************************
'   フォルダ移動サンプル(ワイルドカード)
'*******************************************************************************
Sub MOVEFOLDER_SAMPLE()
    Const cnsSOUR = "C:\AAA\*"              ' 元フォルダ(配下の全サブフォルダ)
    Const cnsDEST = "C:\BBB\"               ' 先フォルダ
    Dim objFSO As FileSystemObject  ' FSO

    Set objFSO = New FileSystemObject
    ' FSOによるフォルダ移動
    objFSO.MoveFolder cnsSOUR, cnsDEST
    Set objFSO = Nothing
End Sub

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

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

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

'*******************************************************************************
'   ファイル削除サンプル@(単一ファイル)
'*******************************************************************************
Sub DELETEFILE_SAMPLE1()
    Const cnsSOUR = "C:\AAA\SAMPLE1.txt"    ' 対象ファイル
    Dim objFSO As FileSystemObject  ' FSO

    Set objFSO = New FileSystemObject
    ' FSOによるファイル削除
    objFSO.DeleteFile cnsSOUR, True
    Set objFSO = Nothing
End Sub

'*******************************************************************************
'   ファイル削除サンプルA(ワイルドカード)
'*******************************************************************************
Sub DELETEFILE_SAMPLE2()
    Const cnsSOUR = "C:\AAA\*.txt"          ' 元ファイル(拡張子txt全て)
    Dim objFSO As FileSystemObject  ' FSO

    Set objFSO = New FileSystemObject
    ' FSOによるファイル削除
    objFSO.DeleteFile cnsSOUR, True
    Set objFSO = Nothing
End Sub

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

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

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

'*******************************************************************************
'   フォルダ削除サンプル(ワイルドカード)
'*******************************************************************************
Sub DELETEFOLDER_SAMPLE()
    Const cnsSOUR = "C:\AAA"                ' 削除フォルダ
    Dim objFSO As FileSystemObject  ' FSO

    Set objFSO = New FileSystemObject
    ' FSOによるフォルダ削除
    objFSO.DeleteFolder cnsSOUR, True
    Set objFSO = Nothing
End Sub

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