![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
No.2ベストアンサー
- 回答日時:
#1さんの示していただいたサイトを参考にサブルーチン化して利用すれば簡単。
新規のモジュールを追加して下記をコピペ
--------この下から--------
''ごみ箱に送るためのAPI
Private Declare Function SHFileOperation Lib "shell32.dll" _
(lpFileOp As SHFILEOPSTRUCT) As Long
''SHFileOperation関数に渡すユーザー定義型
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_DELETE = &H3 '削除
Private Const FOF_NOCONFIRMATION = &H10 '確認なし
Private Const FOF_ALLOWUNDO = &H40 ''ごみ箱に送る
Sub DeleteFile(Target As String)
Dim SH As SHFILEOPSTRUCT, re As Long
With SH
.wFunc = FO_DELETE
.pFrom = Target
.fFlags = FOF_ALLOWUNDO Or FOF_NOCONFIRMATION
End With
re = SHFileOperation(SH)
If re <> 0 Then MsgBox "削除に失敗しました", vbExclamation
End Sub
--------この上まで--------
使うときは
DeleteFile ファイル名
の一行で、ごみ箱に送れます。
削除前に確認が必要なら
.fFlags = FOF_ALLOWUNDO Or FOF_NOCONFIRMATION
を
.fFlags = FOF_ALLOWUNDO
に変更してください。
No.4
- 回答日時:
#1です。
> 思っていたよりはるかに難しそうです
> あつかましいようですが、数行ですむ方法はないでしょうか?
難しく考える必要はありません。
既に #2さんがサブルーチンの例を挙げてますので、#2さんの「この下から」「この上まで」の間のコードを標準モジュールの一番上にコピペしておきます。
その上でこれまで Kill を使っていた部分を DeleteFile に置き換えれば良いだけだと思います。
'標準モジュール
'この下から
''ごみ箱に送るためのAPI
・
・
・
'この上まで
Sub 今までのコード()
' kill "削除したいファイルのフルパス"
DeleteFile "削除したいファイルのフルパス"
End Sub
No.3
- 回答日時:
こんばんは。
>Killでファイルを削除すると、ゴミ箱に入らずに削除されてしまいます
最初に、完全削除に迷うものは、マクロで削除するというのは、VBAのコードのコンセプトとして、上手くありません。
Rename(VBAでは、Name) して、ファイル名の前に、$ をつけておくか、バックアップフォルダを作っておいて、COPY で、そちらに送って、その後で、KILLで削除すればよいのではありませんか? 私は、いつもは、ファイル名に $ をつけています。それが溜まった時点で消せばよいです。もちろん、フリーソフトウェアの「窓の手」などで一括削除も出来ます。
No.1
- 回答日時:
この回答への補足
回答ありがとうございます!
URLからサイトを見ましたが・・・思っていたよりはるかに難しそうです
あつかましいようですが、数行ですむ方法はないでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 2つのマクロを連続して動かしたい 3 2022/09/20 23:46
- ノートパソコン PCでドキュメントに保存してるフォルダーを削除しゴミ箱からも削除しました。 なのに何故か数日するとい 4 2023/04/02 11:57
- Windows 10 フォルダをパソコンから削除してもまた現れます。 5 2023/04/15 11:45
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/08/10 14:24
- Excel(エクセル) Excelを開くとエラーが出る 2 2022/10/03 16:13
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/10 11:34
- iCloud 【至急】 自分のiPhoneの中にある写真をパソコンに取り込むために、iCloudから写真をUSBケ 2 2023/07/06 21:54
- システム パソコンのゴミ箱について質問です。 例えばu-nextのアプリをゴミ箱に入れて30日が経過して完全に 3 2022/04/24 19:55
- その他(クラウドサービス・オンラインストレージ) Googleフォトに写真や動画保存してたんですけど 容量不足でメールなどが受信できません と通知来ま 1 2022/10/28 23:15
- その他(クラウドサービス・オンラインストレージ) Googleフォトと同期して写真、動画を保存してます 先ほど「容量不足の為メールが受信できなくなりま 3 2022/10/29 07:12
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
サンダーバードのメール削除
-
pcでフォルダをDeleteで削除し...
-
MozillaThunderbirdでごみ箱か...
-
解凍後の.zipファイルは消して...
-
拡張子をtxtからdatに
-
Excelで「同じ名前のファイルが...
-
解凍について教えてください。
-
Outlook2010 データ (.ost)の復元
-
Geek Uninstaller と Revo Unin...
-
“.vbs”のファイルが実行できない
-
圧縮ファイル(rarファイル)は...
-
4.7GB以上のデータをDVDに書き...
-
CドライブのAPSETUPフォルダは...
-
HL-DT-ST DVDRAM GH24NS50 のド...
-
ワードのデータをUSBに保存した...
-
いちいち黒い枠
-
圧縮ファイルの解凍前と後の容...
-
メールダウンロードフォルダの場所
-
結合解凍
-
VBAでExcelの保存終了を取得したい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
linux Ubuntu上で見えない「.tr...
-
MozillaThunderbirdでごみ箱か...
-
windows10のエクスプローラーの...
-
サンダーバードのメール削除
-
ごみ箱って
-
間違えて、メールをゴミ箱に入...
-
pcでフォルダをDeleteで削除し...
-
外付けHDDのゴミ箱のみ 削除す...
-
削除してしまったメモ帳の復元...
-
“ゴミ箱を空にする”には
-
外付けHDDから削除したものはど...
-
ごみ箱の設置について
-
「ごみ箱が壊れています」と出ます
-
ごみ箱から写真を削除
-
パソコンでiPhoneとiTunes
-
ごみ箱のアイコンが透明になっ...
-
ゴミ箱でファイルを消しても残...
-
外付けHDDでゴミ箱が内蔵されて...
-
gooのフリーメール受信ホルダー...
-
HDの容量が増えない
おすすめ情報