Automatically Saving Document Copies on Floppy

Written by Allen Wyatt (last updated May 2, 2015)
This tip applies to Word 97, 2000, 2002, and 2003


Users of older versions of WordPerfect may be familiar with a command that allows you to save a copy of your current document to the A: drive, without modifying the condition of the document or changing where it is normally saved. Thus, if you open C:\My Docs\MyFile.doc, and initiate this command, a copy of the file is made to A:, and the next time you use the Save command, the file is still saved to its normal place on C:.

Word does not include such a feature, and some people think it should. It seems that a natural place for such a command is the Send To submenu available from the File menu. Normally, this submenu includes only a few items, as it is used for native Word commands that allow direct faxing or use of an e-mail connection. Fortunately, it is like any other menu or submenu in Word and can be customized. How to customize menus has been covered extensively in other issues of WordTips.

Since adding to the submenu is rather easy, the problem is coming up with a command to do the actual copy or save to the A: drive. This is where a custom macro comes to the rescue, as there is no native Word command to achieve the desired effect.

One approach is to simply save the current document to the A: drive. The problem with this is that from that point forward, Word thinks the document belongs on the A: drive. The solution is to store the current location of the file, save it to A:, and then save it again, but this time to the original location. The following macro does this in a few simple steps:

Sub FileCopyToA()
    Dim OrName As String
    OrName = ActiveDocument.FullName
    ActiveDocument.SaveAs "A:\" + ActiveDocument.Name
    ActiveDocument.SaveAs OrName
End Sub

There are drawbacks to such a simple approach, however. First (and potentially most important), if you are working on a large file, it may not fit on the A: drive. In that case, the macro will die an ignoble death, and you will need to take the steps to manually recover by resaving your file to its original location. Another fact of life with this macro is that it will overwrite any existing same-name document on the A: drive. Finally, if you didn't want the document saved, but only wanted a snapshot on A:, this macro is not for you.

A somewhat more flexible version of the FileCopyToA macro is DoubleCopy, which prompts the user for a drive before actually making the copy. Unfortunately, it has the same general drawbacks, as well.

Sub DoubleCopy()
    Dim Message As String, Title As String
    Dim Default As String, Drive As String
    Dim ffname as String, fname as String

    On Error GoTo Quit
    Message = "Enter drive letter for document (A, C, D)"
    Title = "Send Document to File"
    Default = "A"

    ' Display message, title, and default value
    Drive = InputBox(Message, Title, Default)
    If Drive > "" Then
        ffname = ActiveDocument.FullName
        fname = Drive & ":\" & ActiveDocument.Name
        ActiveDocument.SaveAs fname
        ActiveDocument.SaveAs ffname
    End If
    Quit:
End Sub

One of the other drawbacks of the approaches presented so far is that they can be slow—very slow. Word is inherently slow in saving a document to a floppy drive. Unless your document is very small, it is faster to save to a hard drive and then use a copy command to copy a file to the floppy. The following macro, SentToDriveA, takes this approach.

Sub SentToDriveA()
    If ActiveDocument.Saved = False Then ActiveDocument.Save
    System.Cursor = wdCursorWait
    OrigLongFileName = ActiveDocument.Name
    OldPath = ActiveDocument.Path & Application.PathSeparator
    If ActiveDocument.Path = "" Then
        MsgBox "Please save this document before sending to drive A:", _
           vbOKOnly, "This Document Not Saved"
    Else
        Documents(ActiveWindow.Caption).Close
        FileCopy OldPath & OrigLongFileName, "a:\" & OrigLongFileName
        Documents.Open FileName:=OldPath & OrigLongFileName
        Application.GoBack
    End If
    System.Cursor = wdCursorNormal
End Sub

The macro first checks to ensure that the current document has been saved somewhere on your hard drive. (In other words, it is not a brand new document.) Then, it closes the document, copies it to A:, and reopens the document. The reason for the closing is that Word will not allow an open document to be copied. Because the document is closed, it is important that this macro be saved in the Normal.Dot template, or in some other global template.

Finally, if you wanted to create a macro that took a "snapshot" of the current document, without actually saving it to your hard drive before making the copy on A:, you would need to duplicate your document and then save the duplicate to A:. Copying an entire document requires a little more effort that simply grabbing the text content and passing it to a new document, however. Word documents are divided up into chunks that represent the main body, headers and footers, footnotes, etc. These are referenced in VBA using StoryRanges with each StoryRange having a StoryType. The following macro copies each of the StoryRanges to a new document and then prompts to save the new document on A:

Public Sub CopyToA()
    Dim docActive As Document
    Dim docNew As Document
    Dim rngActiveDocPart As Range
    Dim rngNewDocPart As Range
    Dim strDocName As String
    Dim strTemplateName As String

    ' reference the current document
    Set docActive = ActiveDocument

    ' get the name of doc and also path/name
    ' of the template it's based-on
    strDocName = docActive.Name
    strTemplateName = docActive.AttachedTemplate.FullName

    ' create a copy document based on same template
    Set docNew = Documents.Add(strTemplateName)

    ' loop to copy each part of the active doc to the new doc
    For Each rngActiveDocPart In docActive.StoryRanges
        ' reference same part
        Set rngNewDocPart = docNew.StoryRanges _
           (rngActiveDocPart.StoryType)
        rngActiveDocPart.Copy
        rngNewDocPart.Paste
    Next rngActiveDocPart

    ' make the new document active
    docNew.Activate

    ' offer to save it on floppy drive A:\
    With Dialogs(wdDialogFileSaveAs)
        .Name = "A:\" & strDocName
        .Show
    End With
End Sub

This final approach could obviously be modified so that the newly created copy document was closed after saving. That way, your original document would be left open an unsaved to disk when the macro was complete.

If all of the techniques described in this tip sound interesting to you, but you don't have a floppy drive on your system, don't despair. You can just as easily use the same macros to save copies to your flash drive, as well. As long as you know the drive letter for the flash drive, just substitute that drive letter for the A: drive designator in the macros. (Works like a charm.)

Note:

If you would like to know how to use the macros described on this page (or on any other page on the WordTips sites), I've prepared a special page that includes helpful information. Click here to open that special page in a new browser tab.

WordTips is your source for cost-effective Microsoft Word training. (Microsoft Word is the most popular word processing software in the world.) This tip (1715) applies to Microsoft Word 97, 2000, 2002, and 2003.

Author Bio

Allen Wyatt

With more than 50 non-fiction books and numerous magazine articles to his credit, Allen Wyatt is an internationally recognized author. He is president of Sharon Parq Associates, a computer and publishing services company. ...

MORE FROM ALLEN

Adding Vertical Lines between Columns

Columns can be an integral part of your document layout. In some instances you may want Word to insert a vertical line ...

Discover More

Counting Commas in a Selection

If you have a range of cells in which you want to count all the commas, there are several ways you can derive the figure ...

Discover More

Can't Edit Org Charts in Word

Word cand other Office applications are often provided with special add-ins that expand what you can do with the ...

Discover More

Comprehensive VBA Guide Visual Basic for Applications (VBA) is the language used for writing macros in all Office programs. This complete guide shows both professionals and novices how to master VBA in order to customize the entire Office suite for their needs. Check out Mastering VBA for Office 2010 today!

More WordTips (menu)

Turning Off HTML Conversions

Don't want Word to load up your HTML documents as formatted text? There are a couple of ways you can instruct Word to be ...

Discover More

Too Many Temporary Files

Word, as it operates, creates lots of temporary files on your system. Here are some ideas for dealing with that plethora ...

Discover More

Viewing Document Statistics

As you develop a document, Word keeps track of certain statistics about the document itself. Here is how you can review ...

Discover More
Subscribe

FREE SERVICE: Get tips like this every week in WordTips, a free productivity newsletter. Enter your address and click "Subscribe."

View most recent newsletter.

Comments

If you would like to add an image to your comment (not an avatar, but an image to help in making the point of your comment), include the characters [{fig}] (all 7 characters, in the sequence shown) in your comment text. You’ll be prompted to upload your image when you submit the comment. Maximum image size is 6Mpixels. Images larger than 600px wide or 1000px tall will be reduced. Up to three images may be included in a comment. All images are subject to review. Commenting privileges may be curtailed if inappropriate images are posted.

What is 9 - 8?

There are currently no comments for this tip. (Be the first to leave your comment—just use the simple form above!)


This Site

Got a version of Word that uses the menu interface (Word 97, Word 2000, Word 2002, or Word 2003)? This site is for you! If you use a later version of Word, visit our WordTips site focusing on the ribbon interface.

Videos
Subscribe

FREE SERVICE: Get tips like this every week in WordTips, a free productivity newsletter. Enter your address and click "Subscribe."

(Your e-mail address is not shared with anyone, ever.)

View the most recent newsletter.