◆オブジェクトを使用した File / Folder のコピー
FileオブジェクトやFolderオブジェクトを使用してコピーをする方法を紹介します。
Copyメソッドの構文は
object.Copy destination[, overwrite]
です。
ポイントはコピー先のパスの最後に、このフォルダーの中へ、という意味?で "\" を
付け加えることです。
ファイルの名前やフォルダの名前を変更してコピーすることもできます。
サンプル を参照してください。
上書きを許す場合は、overwrite のところで True を記述します。省略すると False を
設定したことになります。
Sub FileCopy()
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.Copy FolderSpec
FolderSpec = FolderSpec & "temp.xls"
File_Object.Copy FolderSpec
End Sub
Sub FolderCopy()
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)
SourcFolder_Object.Copy DestFolderSpec
DestFolderSpec = DestFolderSpec & "\"
SourcFolder_Object.Copy DestFolderSpec
DestFolderSpec = DestFolderSpec & "NewFolder"
SourcFolder_Object.Copy 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 をダウンロードして動作を確認してください。