Word.Tips.Net Welcome toWord.Tips.Net

Helpful Links

Tips.Net Home
WordTips Home

Ask a Word Question
Make a Comment

Tips.Net Store

WordTips FAQ
WordTips Premium

Learn Access Now
Free Printable Forms

Beauty Tips
Car Tips
Cleaning Tips
College Tips
Cooking Tips
Excel2007 Tips
ExcelTips
Family Tips
Gardening Tips
Health Tips
Home Tips
Legal Tips
Money Tips
Organizing Tips
Pest Tips
Pet Tips
Wedding Tips
Word2007 Tips
WordTips

Advertise on the
WordTips Site

Newest Tips

Setting Fraction Bar Overhang Spacing in the Equation Editor

Printing On Both Sides of the Paper

Turning Off AutoComplete for Dates

Ordering Search and Replace

Understanding Auto Line Spacing

Adding Comments to Your Document

Conditional Calculations in Word

 

Single Instance of Word

Summary: Here's a nifty macro that allows you to limit how many instances of Word 97 are open at the same time. (This tip works with Microsoft Word 97.)

Every time you choose Word from the Start menu, a new instance of Word is opened on your system. It is possible to have five, six, or more instances of Word open, each editing away on their own files. You can do this because of both the way Word is written (as a program) and the features built into Windows. In some user environments, it may not be beneficial to have multiple instances of Word open at the same time. There is no simple way to prevent this, but you can create an AutoExec macro that will not allow multiple instances of Word 97 to be open. (You cannot do this in versions of Word previous to Word 97 because they do not allow inspection of the entire range of applications open on a system.) The following VBA macro will accomplish this very task.

Sub AutoExec()
thisinstance = Application.Tasks.Application.Caption
If thisinstance = "Microsoft Word" Then
    j = 0
        For Each i In Tasks
            If InStr(1, i.Name, thisinstance) > 0 Then
                j = j + 1
                Tasks(i).Activate
            End If
        Next i
    If j > 1 Then Application.Tasks.Application.Quit
Else
    For Each i In Tasks
        If InStr(1, i.Name, "Microsoft Word") > 0 Then
            If i.Name <> thisinstance Then
                i.Activate
                Application.Tasks(thisinstance).Close
            End If
        End If
    Next i
End If
End Sub

You should note that since this is an AutoExec macro (it automatically runs whenever Word is first started), there are some ways around it. If the user changes the Word command line (the one that actually starts Word) to use the /m switch, or if the user holds down the Shift key while Word is starting, then the AutoExec macro will not execute.

Tip #390 applies to Microsoft Word versions: 97

Save Time! WordTips has been published weekly since early 1997. Past issues are available in convenient WordTips archives. Have your own enhanced archive of WordTips at your fingertips, available to use at any time!
 
Check out WordTips Archives today!