WSH(VBS)を使って他のアプリと簡単連携!

WSH(VBS)を使って他のアプリと簡単連携!

WSH(VBS)を使って他のアプリと簡単連携!

何故か不明ですが、8月はWSHの案件が沢山ありました。
このブログで何の紹介もしていないのに何故か着地がWSHという…不思議ですね。

と言う事で、数回にわたってWSHについてまとめとアホみたいに悩んだ事柄についてメモしていきたいと思います。

WSHってなに

Windowsの自動化等で利用される事が多いスクリプトでLinuxで言う所のsh。
Windows Scripting Host (WSH) 』という意味らしい。
wshで動くマクロを『JScript』という言語で書いてWindows を自動操作する事が出来る。

ちなみに、JScript(ジェイ・スクリプト)は、マイクロソフト製のスクリプト言語であり、Microsoft Windows 上で動作する。つまり、JavaScript ≠ JScript ややこしいことこの上ないですね。
JScriptでググるとJavaScriptの記事ばかりにHITするのでWindowsの操縦に関しての検索はWSHでする事をお勧めする。

WSHでは、「.js」「.jse」「.wsf」などの拡張子を使用できますが、実行ファイルを複数ファイルに分割した場合、「.wsf」を使用することが無難です。とGoogle先生に教えて頂きました。

まぁ私の場合はVBS(VBScript)にしてしまうので、厳密にはWSHではないのですけど…。

主だった参考図書はココとかココ

WSHで何ができるか

やれることの範囲は超広くてWindowsの操作でルールがあるものであれば、ほぼ自動化できます。
MacでやるとしたらJavaScriptで作る事になるのかな?

WSHの優秀な所は、自動操縦用と言っても過言ではないIEを完全コントロールできる事。
IEのCOMを利用してHTML内のID引き当てたりbusy待ちしたり、色々操作できてしまいます。

その他にも特定のアプリを起動させて、TABやENTER等のキーボード操作を追って操作したりとかね。

WSHで構築した事

  • ローカルサーバーの販売管理システムから在庫情報を抜き出しFTPでWEBサーバー所定のフォルダにアップロード
  • ローカルサーバーの顧客台帳から顧客情報を抜き出しFTPでWEBサーバー所定フォルダにアップロード
  • WEBサーバーの提示実行で生成されたCSVをFTPで取出しローカルサーバーの所定フォルダにDownload
  • etc.

こんな事が簡単にできちゃうんですよね。
この程度であれば作成時間2時間&テスト1時間って感じで完成しちゃいます。

WSHの基本的な書き方

■ファイル名:hoge.jse

見て頂いてわかる通り、OS内のキーボード操作を追って動作をスクリプトに書いていきます。
そして、この実行をタスクマネージャーを使い時限式にすると…。

あっという間に『○○時に顧客データ更新』『□□時に在庫データ更新』なんて実装が出来ます。

まとめ

こう言った自動化の問題って何かと言うと、作って試してを繰り返すので「スクリプトかいてる時間が短くなる」と言う事です。だってねぇ、実際にテストしようとすると動かすしかないんですけど、そのテストの間はOS占拠されてますから。

お陰で作るのに時間が掛かると言うね。

まぁ作ってしまえば圧倒的に楽になるのでいいのですが。