?
Solved

How to save a copy of Word document with VBA

Posted on 2009-07-13
3
Medium Priority
?
618 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

 [eBook] Windows Nano Server

Download this FREE eBook and learn all you need to get started with Windows Nano Server, including deployment options, remote management
and troubleshooting tips and tricks

Question has a verified solution.

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

Preparing an email is something we should all take special care with – especially when the email is for somebody you may not know very well. The pressures of everyday working life stacked with a hectic office environment can make this a real challen…
This article describes a method of delivering Word templates for use in merging Access data to Word documents, that requires no computer knowledge on the part of the recipient -- the templates are saved in table fields, and are extracted and install…
Add bar graphs to Access queries using Unicode block characters. Graphs appear on every record in the color you want. Give life to numbers. Hopes this gives you ideas on visualizing your data in new ways ~ Create a calculated field in a query: …
Do you want to know how to make a graph with Microsoft Access? First, create a query with the data for the chart. Then make a blank form and add a chart control. This video also shows how to change what data is displayed on the graph as well as form…
Suggested Courses
Course of the Month15 days, 7 hours left to enroll

741 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