先輩に「アプリケーションを開いて、閉じて、ていうのを繰り返すだけのマクロって何で書けばいいかな?」と聞かれた。僕も詳しくないので「うーん、DOSプロンプトでバッチファイルを回すとか、Excelマクロとかで書けないですかねー?」とか言いつつ、WSH(Windows Script Host)が頭に浮かんだのだけど、「何それ?」と言われそうだったのでとりあえず黙っておいて、二人別々に試行錯誤してみることに。
外部アプリを実行するというのはそれほど難しいことではないというか、いくらでもやりようがあるのだけど、外部アプリを終了させるというところで引っかかる。最初はExcel VBAを調べようと思ったのだけどWSHの方が手っ取り早いんじゃね?と思い直してWSHを調べてみると、任意のウィンドウにキーコードが送れる。ということは、対象のウィンドウに向かって"Alt+F4"を送ればいいのか。
WSHの標準スクリプト言語であるJScript、VBScriptなんてしばらく書いてないのでWeb上のサンプルを写し書きに近い形で何とかそれらしい物を書き上げて先輩に見せてみる。と、予想以上に喜ばれてしまった。先輩も"Alt+F4"を送るマクロをさらっと書く方法を探していたらしい。
それにしても、そこまで素直に喜ばれるとは、と本当に思いましたよ。冒頭のように質問されること自体が結構珍しいことなのでなおのこと。おだてられてるのかしら?と勘繰ってしまうくらい。
嬉しかったのでもうちょっとWSHについて調べてみる。先輩に渡した突貫工事版を修正してみて、最初JScriptで書いていた物をVBScriptで書き直してみたりする。なかなか楽しい。
WSHを調べていると、WSHで実行可能なのはJScript、VBScriptだけでなくPerl、Pythonなども"動作環境が用意できれば"実行可能ですよ、と書いてあるのをたびたび見かけるのだけど、肝心の"動作環境"の用意の仕方がわからない。うーん。Pythonで書いてみたいんだけどな、どうしたらいいのか、とちまちま調べていたら、そのことに言及しているサイトがありました。
Win32拡張モジュールがあればいいわけね。PerlのほうはActivePerlをインストールするだけでいいらしい、と、ちらりと見かけたのでActivePythonならいけるかな?と試してみると見事に動くじゃないですか!(本当にActivePython"だけ"で動くかどうかは確認できてません)
いやー、これはこれは。こんなに楽しいおもちゃが会社のPCに入ってちゃだめじゃないですか。正確に言うとActivePythonは勝手に入れましたが。
個人的にはPythonでたくさん書いてみたいんですけどね、他の人が使うかもしれないことを考えるとVBScriptにしておくのが無難かなと思いつつ、いろんな雑多処理をWSHで自動化できないかな、とニヤニヤ考えるのであります。
最近のコメント