Solved

determine if word document was opened by another document

Posted on 2014-12-16
5
105 Views
Last Modified: 2014-12-17
continuation of this question

Word 2003:
Currently I have code in document 1 to open a second document based on a template:
Documents.Add "document2.dot"

document2.dot has a Sub Document_New() routine.

I would like to run one set of code in document2.dot if document2.dot is opened by double clicking on it but run a different set of code if it is opened from document 1.  Document 1 could have any name.

for example:
Sub Document_New()
   If opened from document 1 then
       do this
   else
       do this instead
   end if
End Sub

Any way to do that?
0
Comment
Question by:thenelson
  • 3
  • 2
5 Comments
 
LVL 76

Accepted Solution

by:
GrahamSkan earned 500 total points
ID: 40503270
You could try setting a time flag in the registry and testing it to make sure that it isn't an old setting:
Sub NewDocFromDoc2()
    Dim doc As Document
    SaveSetting "MyApp", "Opening", "Time", CStr(Now)
    Set doc = Documents.Add("C:\Users\Graham Skan\Documents\Doc2.dotm")
End Sub

Open in new window

Sub Document_New()
Dim dt As Date
dt = CDate(GetSetting("MyApp", "Opening", "Time", "1/1/1900"))
    If DateDiff("s", dt, Now) < 2 Then
        MsgBox "Opened from Doc1"
    End If
End Sub

Open in new window

0
 
LVL 39

Author Comment

by:thenelson
ID: 40503965
Neat idea. I guess I could use DeleteSetting after GetSetting in the second document and then I wouldn't need to check the time.
0
 
LVL 76

Expert Comment

by:GrahamSkan
ID: 40504416
Yes, that would work as well.
0
 
LVL 39

Author Comment

by:thenelson
ID: 40504631
So this is what I did and it is working fine:

Calling document:
SaveSetting "Script", "Open", "Ptname", ActiveDocument.Bookmarks("PatientsName").Range.Text
SaveSetting "Script", "Open", "DOB", Format(ActiveDocument.Bookmarks("DOB").Range.Text, "mm/dd/yyyy")

Documents.Add ("Document2.dot")

Open in new window

Document2.dot:
Dim strName As String, strDOB As String

strName = GetSetting("Script", "Open", "Ptname")
If Len(strName & "") Then
    strDOB = GetSetting("Script", "Open", "DOB")
    DeleteSetting "Script", "Open"
Else
    'the other stuff
End If

Open in new window

0
 
LVL 39

Author Closing Comment

by:thenelson
ID: 40504638
Thanks, works great.
0

Featured Post

Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Question has a verified solution.

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

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…
This is written from a 'VBA for MS Word' perspective, but I am sure it applies to most other MS Office components where VBA is used.  One thing that really bugs me is slow code, ESPECIALLY when it's mine!  In programming there are so many ways to…
Learn how to make your own table of contents in Microsoft Word using paragraph styles and the automatic table of contents tool. We'll be using the paragraph styles in Word’s Home toolbar to help you create a table of contents. Type out your initial …
Office 365 is currently available in five editions. Three of them are for business use: Office 365 Business Essentials, Office 365 Business, and Office 365 Business Premium. Two of them are for home/personal use: Office 365 Home and Office 365 Perso…

733 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