質問: ### 前提・実現したいこと エクセルのマクロでAutohotkeyのショートカットを動かしたいのですが上手くいきません。 流れとしては、マクロが動いてるときにAutohotkeyをアクティブ、2秒待ち時間、ショートカットキー入力、となります。 AppActivateはメモ帳ではうまく動くのですが、AutoHotkeyもアクティブにする方法はありますか? ### 発生している問題・エラーメッセージ ``` プロシージャの呼び出し、または因数が不正です。 ``` ### 該当のソースコード AppActivate "test.ahk - AutoHotkey", True Application.Wait Now + TimeSerial(0, 0, 2) Sendkeys "^k" ### 試したこと AppActivate "test.ahk - AutoHotkey", True の部分に問題があるので、"test.ahk", Trueにしてみたがダメでした。 ### 補足情報(FW/ツールのバージョンなど) ここにより詳細な情報を記載してください。
回答: AutoHotkeyって下記のことですよね。 AutoHotkey の評価・使い方 - フリーソフト100 これだとすると、ホットキー(ショートカットキー)に独自のコマンドを登録するもので、 これ自体、ウィンドウを持たないものなので、アクティブにできないです。 当然、AppActivateは無意味なものになります。 実際、何をしたいのか説明したほうがいいかと思います。 コメントより > > マクロ上でホットキーを動かすことができれば任意のブラウザやソフトにペーストができるので、 > > 作業効率を上げることができると考えています。 > > > 操作したい任意のソフトを AppActivate でアクティブにして、Sendkeys でキー送信して操作することになると思います。 ただし、Sendkeys での操作は不安定だし、場合によっては想定外の動作になり危険でもあります。 例えば、マルチタスクですので、処理の実行中にユーザーが別のソフトをアクティブにしてしまうと、その別のソフトにキー送信されしまう危険性があります。 ブラウザであるなら、「VBA IE操作」あるいは「VBA WEBスクレイピング」をキーワードにWEB検索すると直接IEを操作する方法が見つかると思います。 あとはAPIをつかうとか、自動操作ツールを使うとかいろいろ方法はあります。 下記もご参考に。 VBAで他のアプリケーションを操作する 🌴 officeの杜