Automatically Saving Document Copies on Floppy

by Allen Wyatt
(last updated May 2, 2015)

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.)

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

Applying Bullets from the Keyboard

Most people use the toolbars to apply bullets to paragraphs. If you want to apply them using the keyboard, then you can do so ...

Discover More

Calculating a Group Retirement Date

Calculating a retirement date can be as simple as doing some date math to see when a person reaches a certain age. ...

Discover More

Deleting Tab Stops

Need to delete some tabs tops in a paragraph? It's easy to do using the Tabs dialog box, as described in this tip.

Discover More

Do More in Less Time! Are you ready to harness the full power of Word 2013 to create professional documents? In this comprehensive guide you'll learn the skills and techniques for efficiently building the documents you need for your professional and your personal life. Check out Word 2013 In Depth today!

More WordTips (menu)

Combining Word Documents

At some point you may want to insert one Word document inside another Word document. An easy way to do this is to use the ...

Discover More

Embedding TrueType Fonts by Default

If you use TrueType fonts frequently, you might want to set Word to embed those fonts by default. Here's how to do it.

Discover More

Problems Opening Documents from Explorer

Windows Explorer is a great way to browse through the files available on your system. If you see a document file you want to ...

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}] 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 6 - 0?

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.

Newest Tips
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.