Calling a Macro in Microsoft Word 2003 - vba

I need to reinforce the structure of a Microsoft Word document.
EG:
Style Question here blah blah blah
Style Answer Here blah blahblah
The enforcement here would be the "Answer" style cannot be placed unless there is a "Question" style above it.
To do this I would use a Macro, so ideally I would like to call my Macro everytime the document is edited.
I have read through the Microsoft Office Word 2003 Visual Basic Reference but have not found any events that have this effect.
Does anyone know how to do this. Or anyone have any other ideas?

This thread Event - Document Edited relates to events for Word documents, including the Change event. Perhaps it will help.

Or anyone have any other ideas?
You can have a button that open a custom dialog where the user can enter the question and answer and then press enter and then the dialog automatically format the question/answer correctly. Just one way to go..

I am wondering if WindowSelectionChange might work.

Related

How to search a text in a Windows form (Visual Basic)

I'm looking for a form in a company program, the only clues I have are the texts that are displayed in the form. I tried using ctrl+shift+f to search for all clues but did not find any.
Note: the code comments regarding the location of the form is that the form is an executable command.
I'm having a hard time looking for it, please help.

Editing Word 2003 template with custom toolbar in Word 2007

I only have Word 2007 and a Word 2003 template (.dot file).
When I open it, I can see it has macro's in it, stored in modules. I can also see that the template adds buttons to the add-ins tab in the ribbon.
How can I modify these buttons? Like the text or which macro each button triggers?
As a test I deleted all macros in the template, saved it, restared it, and it still gave me custom buttons in the Add-in tab. Of course if I press those buttons, it gives me error that the macro is not there. Which is fune. Then, if I view the template's code (Alt-F11), there is really no code at all. Also no Add-in is loaded (as seen in the Word options > Add ins window). So how does the Word 2003 template know which buttons to load? Where is the custom toolbar info stored in the Word 2003 template?
i am not sure i fully understood your question. Yet, here are a few elements.
Modify the buttons generated by a macro
You have to change the vba code. See :
this link for Word 2003 : http://www.ozgrid.com/VBA/custom-menus.htm
this link for Word 2007+ : http://www.rondebruin.nl/ribbon.htm
Buttons already loaded
If your custom buttons still appear after you deleted the code :
i'd think that you missed some part of the code to delete, can you re-check ? in every module of the doc
are you sure you didn't save a doc instead of saving the template ?
If these tips doesn't answer your question, please give us some more info on your problem or if possible, give us the template you are using.
Regards,
Max

Using VSTO to perform an action via selected e-mail text in Outlook

This should be pretty a pretty common scenario, but I have not found a solution yet.
I would like to highlight some text within the body of an e-mail and then click on something (context menu, toolbar button, etc) to perform a URL navigation using the selected text. For example, highlight the Fex Ex tracking number and then navigate to their web site using it as a query parameter (like "ww.fedextracking.com?packageid=12345").
How can you capture the selected text within an e-mail and then perform an action? I would greatly appreciate any suggestions or examples.
Thank you!
For Outlook 2007-2010 (or previous versions using WordMail), you can retrieve a Word object from the Inspector.WordEditor property. Then you can work with Word.Selection to access the selected text.
However, for Plain Text or Rich Text scenarios with Outlook 2000-2003, you have to use the SafeInspector object with Redemption (http://www.dimastr.com/redemption/) to access the selected text. I can't remember, but for HTML format messages with Outlook 2003-2003 you may be able to access the selected text with the IHTMLDocument object retrieved from SafeInspector.
I appreciate it's 588 days since you asked your question Loki70, but if somebody else Googles up this page (like I did, looking for how to create a selected text right-click context menu entry) then this may be an answer for you.
I have been using AutoHotKey, which works not just in Outlook, but everywhere in Windows, and have been writing utilities to Google the selected text, open an SSH session in PuTTY to the selected hostname, and similar.
If you don't mind running an extra application on your PC to capture the hotkey combination that you send, then this would do exactly what you're asking.
Here is my post on the AutoHotKey forum with a link to my code:
http://www.autohotkey.com/community/viewtopic.php?t=86402
It would be trivial to adapt this to do the FedEx query you've mentioned.
I hope this helps.

Read values from the Office 2007 ribbon using VBA

Using VBA, can I find out the value of a text (combobox) control on the Word 2007 ribbon?
Say I'd want to read the currently selected font name in the "Home" tab.
I've seen an example using the IAccessible interface to do some interaction with the Ribbon (namely enumerating it), but it seems reading a control value is not possible. Is there another way to do it, or is VBA locked out completely?
I don't think you can get at the ribbon to read the built in properties.
For you specific example of Font name you can use the following.
Msgbox Application.Commandbars.Findcontrol(ID:=1728).Text
You maybe able to adpat the approach for other information.

Capture right-click'd text on Outlook Message Content

I'd like to know if it's possible to capture the text when a user right-click's on an Outlook message, and then add items to the right-click menu depending on the type of text.
This is an example of what I'd like to do. If there's a message (mail item) with the following content: "Hello, please call me at 555-8474 regarding item A1234" and the user right-click's on the number "8", the pop-up context menu will have an extra item at the bottom called "Call 555-8474", and a "PhoneCall" sub will be run if selected. If the user right-click's anywhere on "A1234" a different item (i.e. "Look up A1234") will be shown.
We're running Outlook 2003 and if possible I'd like to know if this can be done using VBA. I'm open to other ideas as well. Thanks!
You can use this example in VBA to get started
SmartTags is an Office 2003 feature that was designed for exactly this sort of thing. I honestly don't know SmartTags well enough to do more than wave in the general direction, so I hope you get a better answer from a domain expert....