Christine is writing a macro and needs to figure out how many document windows are open. The traditional means of doing this is to use the Windows.Count property, in the following manner:
iNumWindows = Application.Windows.Count
When executed, iNumWindows will contain the number of open document windows in Word. The problem is that it returns a count of any window that Word may consider a document, even those that contain e-mails.
As far as we can determine, there is no way around this inclusive behavior of Word. If a person is using Word as their e-mail editor, and they open an e-mail or two, those windows are considered document windows by the program. Granted, they are not documents destined for a disk file or for the printer, but they are documents nonetheless.
In addition, there is no other flag that we could locate that would allow one to differentiate between a regular document window and an e-mail message window. If such a flag were available, then someone could easily check the windows and produce their own count of documents vs. e-mail messages.
Note:
WordTips is your source for cost-effective Microsoft Word training. (Microsoft Word is the most popular word processing software in the world.) This tip (442) applies to Microsoft Word 97, 2000, 2002, and 2003. You can find a version of this tip for the ribbon interface of Word (Word 2007 and later) here: Counting Open Document Windows.
Create Custom Apps with VBA! Discover how to extend the capabilities of Office 2013 (Word, Excel, PowerPoint, Outlook, and Access) with VBA programming, using it for writing macros, automating Office applications, and creating custom applications. Check out Mastering VBA for Office 2013 today!
Word includes the ability to display toolbar icons in two sizes: regular and large. You can turn on the large icons by ...
Discover MoreWhen working with variables in a macro, you may need to know the upper boundary dimension for an array. This can be ...
Discover MoreMacros can make your use of Word faster and easier than ever before. What do you do, however, when you try to save a ...
Discover MoreFREE SERVICE: Get tips like this every week in WordTips, a free productivity newsletter. Enter your address and click "Subscribe."
2017-08-23 09:16:58
Tom Bates
I tried this in Office 2003 - the only version prior to 2007 I have access to. The window count does not seem to include emails being read, only emails being composed. Those windows always seem to have "- Message" at the end of the caption.
I'm not sure how reliable this is, but it might be enough in some cases.
Option Explicit
Private Sub test()
Dim i As Integer, aw As Integer, x As String, p As String
aw = Application.Windows.Count
Debug.Print "Application.Windows.Count = " & aw
For i = 1 To aw
x = Application.Windows(i).Caption
If Right(x, 10) = " - Message" Then p = " Outlook" Else p = " Word "
Debug.Print i & p & " '" & x & "'"
Next i
Debug.Print ""
End Sub
While investigating this topic, I discovered something interesting: Application.Windows.Count is not always the same as Windows.Count. This must be a bug because it's not consistent.
Allan, thanks for the challenge! :-)
Tom
Got a version of Word that uses the menu interface (Word 97, Word 2000, Word 2002, or Word 2003)? This site is for you! If you use a later version of Word, visit our WordTips site focusing on the ribbon interface.
Visit the WordTips channel on YouTube
FREE SERVICE: Get tips like this every week in WordTips, a free productivity newsletter. Enter your address and click "Subscribe."
Copyright © 2022 Sharon Parq Associates, Inc.
Comments