Mastodon

Have you ever wanted to delete the document currently open in Word? I find I often want to do this when I’m trying to clean out a whole bunch of old documents: I open each one, check the contents and, if I no longer need it, delete it on the spot.

Word won’t normally let you do this: you must first close the document, then delete it. That’s a sensible safeguard, but sometimes it gets in the way of what you want to do.

Using a macro, you can get around this restriction and delete the active document. Note that because you cannot undelete any document you eliminate using this macro, it takes some preliminary precautions:

  • First, the macro checks that there is, in fact, an open document to delete.
  • If there is an open document, it checks that you really want to delete it. If not, the macro ends without doing anything else.
  • If you give the go ahead to delete the document, the macro checks to see whether the open document has already been saved. If it has, the document is closed and then deleted. If it has not yet been saved, it is simply closed without saving any changes.

To create the macro:

  1. Press Alt+F8 to open the Macros dialog.
  2. Type DeleteActiveDocument in the Name box and click Create.
  3. Copy and paste the following code between the Sub DeleteActiveDocument() and the End Sub statements (Note: if you want, you can download a full text copy of the code, complete with comments describing what it’s doing at each stage. It’s much easier to read than the listing below.):
Sub DeleteActiveDocument()
Dim strFileToDelete As String
Dim docOpen As Document
Dim  intDocCount As Integer
intDocCount = 0
For Each docOpen In  Documents
intDocCount = intDocCount + 1
Next docOpen
If  intDocCount > 0 Then
If MsgBox(“Are you sure you want to  delete the open document permanently? ” & _
“You won’t be able  to undo this action.”, vbYesNo) = vbYes Then
If  Len(ActiveDocument.Path) <> 0 Then
strFileToDelete  = ActiveDocument.FullName
ActiveDocument.Close  SaveChanges:=False
Kill strFileToDelete
Else
ActiveDocument.Close SaveChanges:=False
End If
End If
Else
MsgBox “There is no open document to  delete.”, vbOKOnly
End If
End Sub
  1. Close the Visual Basic editor.

Add it to Word’s toolbar

To make the macro easily accessible, add it to the Quick Access Toolbar in Word 2007:

  1. Click the arrow at the right end of the Quick Access Toolbar and select More Commands.
  2. In the Choose Commands From box, select Macros from the drop-down list.
  3. Click the newly created macro (it’s full name is Normal.NewMacros.DeleteActiveDocument) and then click the Add button.
  4. Click the Modify button, select an appropriate icon for the macro (there’s a handy one with a cross in a red circle that fits well), type Delete This Doc in the Display Name box and click OK.

To add the macro to a Word 2003 toolbar:

  1. Right-click any toolbar and click Customize.
  2. On the Commands tab in the Categories list click Macros.
  3. Locate Normal.NewMacros.DeleteActiveDocument in the Commands list and click-and-drag it onto a toolbar.
  4. Right-click the new button you’ve created, in the Name box type Del (or something else short and descriptive), then click Text Only. If you’d prefer to use a graphic icon instead of a text-label, although none of the default icons is particularly apt you can create your own by selecting Default (instead of Text Only). Then click Edit Button Image, then Clear and then do a quick paint job (a red X works well).
  5. Click Close in the Customize dialog box.

If you have any problems running the macro, take a look at the code in the Visual Basic editor and make sure you don’t have any broken lines. That’s the usual cause of problems.