geht es mit Makro, eine Datei statt zu löschen in den Papierkorb zu befördern
und wenn ja, wie?
Habe in der Recherche nichts passendes gefunden.
Grüße Jens
Function DeleteFile Lib "kernel32" _
Alias "DeleteFileA" (ByVal lpFileName As String) As Long
Sub Test()
' Löschzeile 1
Kill "c:\windows\file1.txt"
' Löschzeile 2
Call DeleteFile("c:\windows\file2.txt")
End Sub
Sag mal Bescheid, ob eine davon geholfen hat!
Gruß
Frank.
Um eine Datei in den Papierkorb zu verschieben anstatt sie direkt zu löschen, kannst Du VBA (Visual Basic for Applications) verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:
Öffne Excel und drücke ALT
+ F11
, um den VBA-Editor zu öffnen.
Füge ein neues Modul hinzu:
Einfügen
> Modul
.Kopiere den folgenden VBA-Code in das Modul:
Private Declare PtrSafe Function SHFileOperation Lib "shell32.dll" (pFileOp As SHFILEOPSTRUCT) As Long
Private Type SHFILEOPSTRUCT
hwnd As LongPtr
wFunc As Long
pFrom As String
pTo As String
fFlags As Integer
fAnyOperationsAborted As Long
hNameMappings As LongPtr
lpszProgressTitle As String
End Type
Sub MoveToRecycleBin()
Dim FileOp As SHFILEOPSTRUCT
FileOp.hwnd = 0
FileOp.wFunc = &H3 'FO_DELETE
FileOp.pFrom = "C:\Windows\file1.txt" & vbNullChar
FileOp.pTo = vbNullChar
FileOp.fFlags = &H1 'FOF_ALLOWUNDO
SHFileOperation FileOp
End Sub
Ändere den Pfad in FileOp.pFrom
auf die Datei, die Du in den Papierkorb verschieben möchtest.
Führe das Makro aus: Schließe den VBA-Editor und gehe zurück zu Excel. Drücke ALT
+ F8
, wähle MoveToRecycleBin
und klicke auf Ausführen
.
Problem: Datei wird nicht in den Papierkorb verschoben.
Problem: Makro läuft nicht, weil die Sicherheitseinstellungen das Ausführen von Makros blockieren.
Datei
> Optionen
> Trust Center
> Einstellungen für das Trust Center
und aktiviere die Makros.Falls Du keine VBA-Lösung verwenden möchtest, kannst Du die Datei auch manuell in den Papierkorb verschieben:
Löschen
aus dem Kontextmenü.Ja
.Diese Methode ist jedoch nicht so flexibel wie die VBA-Lösung, wenn Du mehrere Dateien verwalten möchtest.
Hier sind einige praktische Beispiele, wie Du das VBA-Skript anpassen kannst:
Beispiel 1: Verschiebe mehrere Dateien:
FileOp.pFrom = "C:\Windows\file1.txt" & vbNullChar & "C:\Windows\file2.txt" & vbNullChar
Beispiel 2: Verwende eine Variable für den Dateipfad:
Dim filePath As String
filePath = "C:\Windows\file1.txt"
FileOp.pFrom = filePath & vbNullChar
fFlags
ändern, z.B. FileOp.fFlags = &H4
für keine Bestätigung.1. Frage: Kann ich das Makro für andere Dateien verwenden?
Antwort: Ja, passe einfach den Dateipfad in der FileOp.pFrom
Zeile an.
2. Frage: Funktioniert das auch auf Mac?
Antwort: Diese Methode ist spezifisch für Windows. Auf einem Mac benötigst Du eine andere Methode, um Dateien zu löschen oder in den Papierkorb zu verschieben.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen