見出し画像

Auto Hot KeyはVS Codeで使うと超実用的なRPAプログラミング言語に化ける!

Auto Hot Key, AHK v2をVisual Studio CodeというIDE環境で触ってみたら見事にしっかりしたプログラミング言語&開発環境に化けたという話。

(約 4,200文字の記事です。)またしても長文。この癖を直さないと😱



自宅PCのRPA開発言語はAHKに決定

ここ4~5日ほど情報収集とテストを重ねた結果、自宅PCでの自動化による作業効率化はAHK v2で行くことに正式決定した。その決め手は以下の通り。

  1. キーボードのキーバインドの上書きや変更ができる(これはおそらくWindows環境では唯一無二の強み)

  2. Pythonとの連携が可能。かなりガッツリと強力な連携ができる。

  3. VS CodeにAHKの必須アドオン2つを入れたら一気にプログラミング言語になった。開発環境としてIDEで扱える言語になった。

  4. Windowsのウィンドウ制御に最初から強い

  5. 当然ながらWindowsアプリの自動制御にも強い

  6. マウスやキーボードの制御にも強い

  7. オープンソースでコミュニティーの活動量と情報量が豊富

  8. レガシーなv1系からv2系に移り変わったあとの情報が増えてきた

  9. Webスクレイピングなどのブラウザ制御はほとんどしない

特に①~③が決め手。そして今日は③を検証したのだが、想像以上に驚いた。

VS CodeにAHKアドオンを追加したら化けた

調べればすぐに出てくると思うが、VS CodeというIDE環境、つまりはプログラミング言語を扱う上でソースコードを書いたり実行したりデバッグしたりなどなど、色々とやらなければならないことをまとめて環境として提供してくれるソフトウェアの類い。色んなIDEソフトがあるがマイクロソフトのVisual Studio Codeは幅広い言語に対応している。しかも無料。

そしてAHK開発者はVS Code用にAHKアドオンも開発している。その中でも
LanguageパックとAHK ++の2つを入れると、もう、完全にPythonやC言語系など、ごく普通に有名になった開発言語と同じ感覚でVS Code上で開発や試行錯誤ができる。

具体的に言うと、数文字打つと絞られて表示される自動補完機能。AHK専用のコマンドが絞り込まれる。同時に関数の型や入力可能な引数の説明も(英語で)ポップアップされる。あとはVS CodeでもPyCharmでも同じ感覚で、TAB, Enter, 上下矢印キーを組み合わせて補完を入れたりタイピングしたり。当然ながら関数とカッコと引数、コメントなども自動で色分け済み。

しかも最近のアプデでAHKのv1とv2を自動で認識して色々と自動で対処してくれるらしい。The 完璧😍とはいえ今からAHKを触るなら間違いなくv2系をオススメする。今からv1を触るメリットが全くない。それだけ別の構文や体系になっている。v2はまさにイマドキのプログラミング言語になっているので、真っ新な気持ちで新たな言語だと思って学べば特に難しいことはない。今流の言語の流派に従っている。対してv1は……。

とにかく、AHK v1時代に秀丸エディタというテキストエディタでプチプチと変更してはタスクトレイのReloadをクリックを繰り返す原始時代の作業から一気にホットキー一発で実行したりデバッグしたりできるようになった。

海外では既に市民権を得たAHK

AHKの構文ハイライトがGitHubで正式に採用されている点からも、プログラミング言語として広く認知されたというのが今のAHK v2だ。確かにv1時代はニッチというか、知る人は知って、使っている人は使って楽しているという程度の認識だったがv2になってからはだいぶプログラミング言語として知名度が上がっている気がする。特にv2になってからはv1の感覚でいると色んな点の進化に驚かされる。

例えばマウスの移動にしても、イーズイン・イーズアウトがデフォルトになっている。滑らかに加速し、緩やかに指定点に辿り着くと言えば分かるかな。移動速度がS字カーブを描いて移動すると言えば分かるかな?他にもメモリ管理などもまともになったようでv1時代の不安定さが感じられない。キッチリカッチリ動く印象。

そしてそれらのVS CodeというIDE環境でまとめて作業できちゃうもんだから、WindowsにおけるGUIアプリの自動化ならば、つまりはWindowsのデスクトップアプリのRPAツールとしてはAHK v2は5~10年は安泰だと思う。


Webブラウザの操作ならばSelenium一択

Seleniumと連携できるプログラミング言語は色々ある。

  • C#

  • Python

  • Ruby

  • PHP

  • Perl

  • JavaScript

  • R Programming

  • Objective-C

  • Haskell

ま、Pythonでも使える事が分かれば何でもいいや。ウェブブラウザで表示される要素への作業の自動化ならばSelenium一択だ。普通に考えれば。

ただしそれはあくまでも詳細かつ正確なブラウザ操作が必要な場合のみ。一般人がPC操作の自動化でWeb画面の操作は、まぁそんなに複雑な手順でもない。せいぜい数ステップしかない。そのためだけに詳細な動作の指定が必要なSeleniumを学ぶ学習コストは、本当に必要か?🤔というのが私の意見。(株取引やFXの自動化など、致命傷を抱えるようなRPA操作でない限り)

SeleniumもPyWinAutoも、操作内容を詳細に指定できる代わりに言語の仕様をよく学ばなければならないという、ハイリスク・ハイリターンな言語。要するに学習コストと得られる自動作業のメリットを天秤にかけたとき、どっちがうまいかという点。今の時点で私にSeleniumは重すぎる。なのでパス。


普通の人ならAHKの自動化でほぼほぼ満足できる

今日は実際にAHK v2とVS CodeでWordPressの編集画面で作業テストを行なっていた。具体的にはSwellブロックエディタ上でマーカーペンをホットキー一発で入れたり消したりできるかテスト。結果としては1箇所だけ微妙に苦しんだものの、何とかすっきり実装できた。まだテスト中だが、論理構成は完成した。ペンボタンもデスクトップで作業するときには99%、いつもの座標にそのボタンがあるのでその辺のエラー対策も不要。なので機械的に手作業操作を自動実行してくれさえすればそれでいい。

私にとってのRPAは、サッと録画&再生、サッと微調整してすぐに本来の作業に復帰できるという、サッとできることがとても重要。なのでSeleniumやPyWinAutoはまったく明後日の方向のアプリということになる。

AHKのRPA言語としての将来性を考えればv2学習はあり

v1から大きく変わったとは言え、それは構文だけの話。AHKで本来できていたことはほぼv2でもできる。(サードパーティー製のv2未対応なモジュールなどを除く。)なのでAHK本体のみでv1でできていたことはv2でもしっかりできる。ヘルプページもほぼ変わらず2種類用意されている。あとはサンプルコードを「気を抜かずに目を皿にして読めば」、v1とv2の違いが分かる。微妙にしか違わないこともあるのでしっかり確認する必要はあるけれど。

ChatGPT先生に「AHK v2で書いて」と言えばそこそこ対応してくれる

全部が全部ではないが、7割程度はv2を指定するとv2のコードを教えてくれる。なのでこれもまた時間の問題でAHKはv2が主流に切り替わることになるだろう。


【結論】AHK+VS Code, Python+PyCharmの2本柱

結局VS CodeとPyCharmを両方扱うことになった。とはいえ私にとってはまずはPyCharmによるIDE環境をしっかり身につけたい。VS CodeはAHK v2専用のエディタくらいにしか思っていないので、VS Codeの深いところはほっといて、見て理解できて触れるところをいじりながら、AHKソースコードを作れればそれでいいや程度で触る。本命はPython+PyCharmの使い込みだ。慣れてくればVS CodeもIDE環境なので両者の違いを認識できれば何が共通なのか=IDEソフトの一般感覚が分かるようになるだろう。それは将来の話でOK。今はPyCharm流に習熟したい。Pythonを学びたいので。

というわけで1週間丸々かかったが、ようやく完結したMy RPA環境の選定と今後の方針。そしてまたしても夜中にnoteを書いてしまった。撃沈。

そしてよせばいいのにAdobe Expressでアイキャッチを作る。

というか公式ロゴを探すほうが大変だった。特にAHK v2のほう。高解像度版が見当たらずPhotoshopで高解像度化に四苦八苦していたらまさかのsvgファイルが公式であった。あっさり高解像度アイコンにコンバートして終了。

というわけで明日から、明日からこそ、ようやく平常運転に戻ります。コツコツPython学習とコツコツAHKによる自動化を進めつつ、本来やりたかったことに復帰できます。ってそれ、何だったっけ?(遠い目)

とにかく夜更かし生活も今日でおしまい!


今回の創作活動は約1時間45分(累積 約3,833時間)
(1,088回目のnote更新)

筆者はAmazonアソシエイト・プログラムに参加しています。(AmazonアソシエイトとはAmazon.co.jpの商品を宣伝し所定の条件を満たすことで紹介料をAmazon様から頂けるという大変ありがたい仕組みのこと。)
以下のリンクを経由してAmazonでお買物をするとその購入額の1~3%ほどのお小遣いが私に寄付されます。誰が何を買ったという情報は私には通知されませんのでご安心下さい😊 以下のリンクを経由して頂ければ紹介商品以外のご購入でもOKですよ~。

Amazonプライム会員はまさかの無料!Kindleで読めます。明日読もっと。


読んでくれてありがとう。気長にマイペースに書いてます。この出会いに感謝😊