dポイントプレゼントキャンペーン実施中!

下記のマクロを実行すると、メッセージが表示され、ダイアログが開き、不要ファイルをマウスで選択して、「OK」をクリックすると不要ファイルが削除されますが、
マクロを実行すると画像のエラーメッセージが表示され、
コードの「 Sh As SHFILEOPSTRUCT」部分の色が変色し、上手くマクロを実行できません。

解決方法を教えてください。
宜しくお願い致します。
現行のマクロ
ub 不要ファイル選択削除()
Dim InitialPath As String
InitialPath = ThisWorkbook.Path
Dim rs As Integer
rs = MsgBox("ファイルを削除します。", vbCritical + vbOKCancel, "削除の確認")
If rs = vbOK Then
Dim sPath As Variant
With Application.FileDialog(msoFileDialogFilePicker)
.Title = "削除するファイルを選択してください"
.InitialFileName = InitialPath
.AllowMultiSelect = True
If .Show = True Then
ReDim filePath(0)
For Each sPath In .SelectedItems
If filePath(0) <> "" Then
ReDim Preserve filePath(UBound(filePath) + 1)
End If
filePath(UBound(filePath)) = sPath
Next
Call MoveDustbox(filePath)
Else
MsgBox "削除をキャンセルしました。", vbInformation
.Execute
End If
End With
End If
End Sub

Sub MoveDustbox(vPath As Variant)
Dim sPath As Variant
Dim Sh As SHFILEOPSTRUCT
Dim ret As Long
Sh.hwnd = Application.hwnd
Sh.wFunc = &H3
Sh.fFlags = &H40 + &H10
If Not IsArray(vPath) Then
Sh.pFrom = vPath
ret = SHFileOperation(Sh)
Else
For Each sPath In vPath
Sh.pFrom = sPath
ret = SHFileOperation(Sh)
Next
End If
End Sub

以上となります。宜しくお願い致します。

「Excelのマクロについて教えてください」の質問画像

A 回答 (1件)

このようなユーザ定義型が必要なはずです。


Office Tanaka アニメ付きファイル操作
http://officetanaka.net/excel/vba/tips/tips48.htm

Public Type SHFILEOPSTRUCT
・・・
End Type
ってやつです。
    • good
    • 0
この回答へのお礼

回答ありがとうございました。
上手くできました。

お礼日時:2024/05/09 09:42

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A