Solved

How to save a copy of Word document with VBA

Posted on 2009-07-13
3
599 Views
Last Modified: 2013-11-27
The steps for the VBA code are currently

1. Get the current word document as object
2. Save the document in a special folder
3. Give this path to a database so that the database can upload the file.
4. Ultimately delete the copy.

I am just using "myDoc.SaveAs CurrentProject.Path & "\Temp\" & str_Save_Name & ".rtf", wdFormatRTF"

At the end of this procedure the currently open document then has this path as its saved path, maybe the user had it saved somewhere else.

What should I do here?
Can I somehow take a copy of an open Word doc and save that without intefereing with the current document?
Or can I reliably just get the current path of the word document (without saving it at all) and use that path to upload?
0
Comment
Question by:darbid73
  • 2
3 Comments
 
LVL 12

Accepted Solution

by:
geneus earned 500 total points
Comment Utility
Below is some Standard Code that I use to make a Copy of a Document in the Current Directory in order to modify the copied document and keep the original intact.

To get the Current Path of a Document:
MsgBox ActiveDocument.Path

To get the Full Document Name and Path:
MsgBox ActiveDocument.Path & Application.PathSeparator & _
    ActiveDocument.Name
'**************************************************************************************************

'*Step #1:  Preserve original document by making a copy of the document and working with the copy.*

'**************************************************************************************************
 

'Get the Current Document name

varOriginalDoc = ActiveDocument.Name
 

'Set the New Document Name
 

If Right(varOriginalDoc, 4) = ".doc" Then

varStringSelection = Len(varOriginalDoc) - 4

varNewDoc = Left(varOriginalDoc, varStringSelection) & "_Copy.doc"

ElseIf Right(varOriginalDoc, 4) = "docx" Then

varStringSelection = Len(varOriginalDoc) - 5

varNewDoc = Left(varOriginalDoc, varStringSelection) & "_Copy.docx"

End If
 

'Create and Save the new Document copy

Documents.Add Template:="Normal", NewTemplate:=False, DocumentType:=0
 

ActiveDocument.SaveAs FileName:=varNewDoc, FileFormat:= _

        wdFormatDocument, LockComments:=False, Password:="", AddToRecentFiles:= _

        True, WritePassword:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts:= _

        False, SaveNativePictureFormat:=False, SaveFormsData:=False, _

        SaveAsAOCELetter:=False

        

'Switch to the Original Document

Documents(varOriginalDoc).Activate
 

'Select the entire Document and Copy the Contents

Selection.HomeKey Unit:=wdStory

Selection.WholeStory

Selection.Copy
 

ActiveDocument.Close
 

'Switch to the new Document

Documents(varNewDoc).Activate

Open in new window

0
 
LVL 19

Author Comment

by:darbid73
Comment Utility
Hey thanks for the great code - One thing I am concerned about is that the OriginalDoc could have any type of things on it, tables, pictures, special formating really anything.

In your experience is a Selection.Copy and I imagine (but you did not put it in the code) a Selection.Paste reliable?

I am not that experienced in Word - so please excuse the dumb what if questions - but your new document will be based on Normal.dot - what if they used another template for the original document, will a copy and paste work ok here?
0
 
LVL 19

Author Comment

by:darbid73
Comment Utility
testing does not seem to show any problems with the copy/paste method.

Thanks
0

Featured Post

Enabling OSINT in Activity Based Intelligence

Activity based intelligence (ABI) requires access to all available sources of data. Recorded Future allows analysts to observe structured data on the open, deep, and dark web.

Join & Write a Comment

In a multiple monitor setup, if you don't want to use AutoCenter to position your popup forms, you have a problem: where will they appear?  Sometimes you may have an additional problem: where the devil did they go?  If you last had a popup form open…
I would like to show you some basics you can do with Mailings in MS Word. It´s quite handy feature you can use for creating envelopes, labels, personalized letters etc. First question could be what is this feature good for? Mailing can really he…
In Microsoft Access, learn how to “cascade” or have the displayed data of one combo control depend upon what’s entered in another. Base the dependent combo on a query for its row source: Add a reference to the first combo on the form as criteria i…
Using Microsoft Access, learn some simple rules for how to construct tables in a relational database. Split up all multi-value fields into single values: Split up fields that belong to other things into separate tables: Make sure that all record…

771 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

14 Experts available now in Live!

Get 1:1 Help Now