◆オブジェクトを使用した File / Folder の移動
FileオブジェクトやFolderオブジェクトを使用して、移動をする方法を紹介します。
Moveメソッドの構文は
object.Move destination
です。
ポイントはコピーと同様に移動先のパスの最後に、このフォルダーの中へ、という意味?
で "\" を付け加えることです。
ファイルの名前やフォルダの名前を変更して移動することもできます。
サンプルはでは、名前を変えないで移動するのと、名前を変更して移動する両方を
書いてありますが、名前を変える方をコメントにしてあります。
動作させるときに、どちらかをコメントにして実行してください。
Sub FileMove()
Dim FileType, Prompt As String
Dim FolderSpec As String
Dim File_Object, Duplicate_Object As Object
Dim FileNamePath As Variant
FileType = "すべての ファイル (*.*),*.*"
Prompt = "File を選択してください"
FileNamePath = SelectFileNamePath(FileType, Prompt)
If FileNamePath = False Then
End
End If
FolderSpec = FolderPath
If FolderSpec = "" Then
End
End If
Set File_Object = CreateObject _
("Scripting.FileSystemObject").GetFile(FileNamePath)
FolderSpec = FolderSpec & "\"
File_Object.Move FolderSpec
End Sub
Sub FolderMove()
Dim SourcFolderSpec, DestFolderSpec As String
Dim SourcFolder_Object, DestFolder_Object As Object
Dim FileNamePath As Variant
SourcFolderSpec = FolderPath
If SourcFolderSpec = "" Then
End
End If
DestFolderSpec = FolderPath
If DestFolderSpec = "" Then
End
End If
Set SourcFolder_Object = CreateObject _
("Scripting.FileSystemObject").GetFolder(SourcFolderSpec)
DestFolderSpec = DestFolderSpec & "\"
SourcFolder_Object.Move DestFolderSpec
End Sub
Function SelectFileNamePath(FileType, Prompt) As Variant
SelectFileNamePath = Application.GetOpenFilename(FileType, , Prompt)
End Function
Function FolderPath() As String
Dim Shell As Object
Set Shell = CreateObject("Shell.Application"). _
BrowseForFolder(0, "フォルダを選択してください", 0, "デスクトップ")
If Shell Is Nothing Then
FolderPath = ""
Else
FolderPath = Shell.Items.Item.Path
End If
End Function
example25 をダウンロードして動作を確認してください。