2017-09-12 29 views
-2
#Include Com.ahk   ; COM 
     RunMSWordMacro(correct) 
     { 
      COM_Init() 
      Word := COM_GetActiveObject("Word.Application") 
      COM_Invoke(Word, "Run", "!"correct) 
      COM_Release(Word) 
      COM_Term() 
     } 

     ; the hotkey is 1 
    1::RunMSWordMacro("correct") 

なぜこのコードは機能しませんか?画像 "メッセージ"を見て、私を助けてください 、私はautohotkeyで新しいユーザーをしてください。autohotkey:ahkスクリプトでvbaマクロを実行する

私はホットキーを押すと、それは私にこのメッセージを与えた:

https://i.stack.imgur.com/ebtDH.png

これは私のVBAコードです:

おかげでデビッド・メトカーフ、それは私のVBAコードです:

Sub correct() 
' 
' correct Macro 
' 
    Selection.Find.ClearFormatting 
    Selection.Find.Replacement.ClearFormatting 
    With Selection.Find 
     .Text = "p " 
     .Forward = True 
     .Wrap = wdFindContinue 
    End With 
    Selection.Find.Execute 
    Selection.TypeText Text:="o " 
End Sub 
+1

あなたが質問をする必要があります。間違っていることや何をしようとしているのかを伝えることなくコードを投稿することは、ほとんど役に立たない。 [編集]あなたの質問と私たちにいくつかの詳細を与える。 –

+0

私の質問を編集して詳細を追加します。 これは私の最高です、助けてください – asad41163

+0

私の体は助けてください。 – asad41163

答えて

0

ここからヘルプ: [https://autohotkey.com/boards/viewtopic.php?f=5&t=37197&e=1&view=unread#unread][1]

1:: RunMSWordMacro("correct") 

    RunMSWordMacro(name) { 
     GetWord().Run(name) 
    } 

    GetWord() { 
     if !hwnd := WinActive("ahk_class OpusApp") 
      hwnd := WinExist("ahk_class OpusApp") 
     ControlGet, ControlHwnd, Hwnd,, _WwG1, ahk_id %hwnd% 
     Return AccObjectFromWindow(ControlHwnd, -16).Application 
    } 

    AccObjectFromWindow(hWnd, idObject = 0) 
    { 
     static IID_IDispatch := "{00020400-0000-0000-C000-000000000046}" 
      , IID_IAccessible := "{618736e0-3c3d-11cf-810c-00aa00389b71}" 
      , OBJID_NATIVEOM := 0xFFFFFFF0, VT_DISPATCH := 9, h := DllCall("LoadLibrary", Str, "oleacc", Ptr) 

     VarSetCapacity(IID, 16), idObject &= 0xFFFFFFFF 
     DllCall("ole32\CLSIDFromString", Str, idObject = OBJID_NATIVEOM ? IID_IDispatch : IID_IAccessible, Ptr, &IID) 
     if DllCall("oleacc\AccessibleObjectFromWindow", Ptr, hWnd, UInt, idObject, Ptr, &IID, PtrP, pAcc) = 0 
      Return ComObjEnwrap(VT_DISPATCH, pAcc, 1) 
    } 
0
は、

あなたのコードの目的が何であるか説明しておけば助かります。あなたが提供しているVBAに基づいて、あなたはMicrosoft Wordを実行しようとしているようです。その場合、AutoHotkeyを完全に使用することができます。

Run構文は非常に使いやすいです。

Run, C:\Path\to\Microsoft Word.exe 
+1

ありがとうDavid Metcalfe、 – asad41163

+0

@ asad41163ようこそ。また、これで問題が解決した場合は、回答なしの質問プールから回答を受け取ります。 :) –

+0

私はMicrosoft Wordを実行したいだけでなく、私はvbaコードを送信し、それをAHKを使って実行したい、助けてください。 – asad41163

関連する問題