例にアニメーション付きでコピーする
'C:\CopySource以下にあるファイルをすべてC:\CopyTarget\以下にコピーする。
'コピーに時間がかかる場合はコピー中のダイアログが自動的に表示される。
'このサンプルを動作させるにはフォーム上にコマンドボタンを1つ貼り付けること。
Private Declare Function SHFileOperation Lib "shell32" Alias "SHFileOperationA" (lpFileOp As SHFILEOPSTRUCT) As Long
Private Type SHFILEOPSTRUCT
hwnd As Long
wFunc As Long
pFrom As String
pTo As String
fFlags As Integer
fAnyOperationsAborted As Long
hNameMappings As Long
lpszProgressTitle As String
End Type
Private Const FO_COPY = &H2
Private Const FO_DELETE = &H3
Private Const FO_MOVE = &H1
Private Const FO_RENAME = &H4
Private Sub Command1_Click()
Dim Ret As Long
Dim sf As SHFILEOPSTRUCT
sf.hwnd = Me.hwnd
sf.wFunc = FO_COPY
sf.pFrom = "C:\CopySource\*"
sf.pTo = "C:\CopyTarget"
Ret = SHFileOperation(sf)
If Ret <> 0 Then MsgBox "失敗しました。"
End Sub