Question:
How to run specific MS Word macro directly by AHK?
Answer:
Use this function:
AutoHotkey_L - recommended
Code:
RunMSWordMacro(MacroName) { ; for AHK_L
oWord := ComObjActive("Word.Application")
oWord.Run(MacroName)
}
/* ; Example:
1::RunMSWordMacro("MyMacro") ; press 1 to run macro called MyMacro
*/
AutoHotkeyCode:
#Include Com.ahk ; by Sean http://www.autohotkey.com/forum/viewtopic.php?t=22923
RunMSWordMacro(MacroName) {
COM_Init()
Word := COM_GetActiveObject("Word.Application")
COM_Invoke(Word, "Run", "!" MacroName)
COM_Release(Word)
COM_Term()
}
/* ; Example:
1::RunMSWordMacro("MyMacro") ; press 1 to run macro called MyMacro
*/
Original post:Hi,
does anyone know how to run specific MS Word macro directly by AHK?
Macro code
Visual basic!Code:
Sub Black()
'
' Black Macro
' Macro recorded 22/10/2009
'
Selection.WholeStory
With Selection.Font
.Color = 15395562
End With
Selection.MoveLeft Unit:=wdCharacter, Count:=1
ActiveDocument.Background.Fill.ForeColor.RGB = RGB(0, 0, 0)
ActiveDocument.Background.Fill.Visible = msoTrue
ActiveDocument.Background.Fill.Solid
End Sub
Although I don't know Visual basic, I can see that this macro is subroutine
called "Black". How can I directly run this subroutine by AHK? (Withouth commands like MouseClick, ControlClick or WinMenuSelectItem - I know how to do this on that way

)