Want to win a PS4? Go Premium and enter to win our High-Tech Treats giveaway. Enter to Win

x
?
Solved

How to save a copy of Word document with VBA

Posted on 2009-07-13
3
Medium Priority
?
619 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
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
3 Comments
 
LVL 12

Accepted Solution

by:
geneus earned 2000 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 20

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 20

Author Comment

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

Thanks
0

Featured Post

Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.

Question has a verified solution.

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

Ever visit a website where you spotted a really cool looking Font, yet couldn't figure out which font family it belonged to, or how to get a copy of it for your own use? This article explains the process of doing exactly that, as well as showing how…
Code that checks the QuickBooks schema table for non-updateable fields and then disables those controls on a form so users don't try to update them.
Learn how to create and modify your own paragraph styles in Microsoft Word. This can be helpful when wanting to make consistently referenced styles throughout a document or template.
This Micro Tutorial well show you how to find and replace special characters in Microsoft Word. This is similar to carriage returns to convert columns of values from Microsoft Excel into comma separated lists.
Suggested Courses

636 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