Solved

How to save a copy of Word document with VBA

Posted on 2009-07-13
3
601 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
ID: 24846845
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
ID: 24847133
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
ID: 24847832
testing does not seem to show any problems with the copy/paste method.

Thanks
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Introduction This tutorial provides instructions on how to properly format your Word document using the inbuilt tools provided. The benefits of using these tools means your documents are more accessible and easily portable to other applications an…
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…
Access reports are powerful and flexible. Learn how to create a query and then a grouped report using the wizard. Modify the report design after the wizard is done to make it look better. There will be another video to explain how to put the final p…
Polish reports in Access so they look terrific. Take yourself to another level. Equations, Back Color, Alternate Back Color. Write easy VBA Code. Tighten space to use less pages. Launch report from a menu, considering criteria only when it is filled…

912 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

20 Experts available now in Live!

Get 1:1 Help Now