最近のお話。ブログの読者様より「VBAを使っていて、ブログを参考にした」という感想をいただきました。ありがとうございます。
実はブログの中ではVBAの利用はおすすめしないことを書いていた記憶があります。
輸入ビジネスで使うとしたらVBAのIE OLE(IE(Internet Explorer)の遠隔操作)とか、良いかもしれません。
いずれにせよ、今回気付かされたことは、
ということでした。VBAが使えるならば、おそらくUWSCがとても役に立つのではないだろうか、ということで、ちょっと紹介してみたいと思います。
UWSCとは?
UWSCとは何者なのか?UWSCとは、一言で表現すると「Windowsマクロ」です。ちなみにVBAがエクセルマクロです。
使用している言語はVBAと同じで「VB」です。厳密にはVBではなく、「VBライク」です。(VBに似ている、という意味)
ゆえに、VBAが使える人であればUWSCを使えると言えます。若干の違いがあって混乱させられますが。
と思わず突っ込みたくなるような仕様です。
このように書くと、
と思ってしまうかもしれませんが、ちょっと待ってください。UWSCにはマウスやキーボードを記録する機能があり、プログラミングができなくてもある程度利用可能な作りになっています。
UWSCでできること
UWSCでできることは何かというと、
- 繰り返しのマウス操作
- 繰り返しのキーボード操作
などを自動化することができます。
たとえばこんな例。
ホントはそんなことはしてはいけませんが、あくまでも例です。Kindleの書籍をファイルとしてダウンロードする中華製の怪しいアプリもありますし。
上記作業の場合、下記の作業をすることになります。
- Windows版のKindleを起動
- 書籍をダウンロード
- 書籍を開く
- スクリーンショットを撮る
- 画像に名前をつける
- 次のページに進む
- 手順4~6をページ数分繰り返す
これを人の手でやるとしたらどれだけの時間がかかるでしょう?それを何冊やるのでしょう?特に手順4~7は機械的な作業で自動化したくなってきます。
こんな時、UWSCを使えば楽勝で自動化できます。これがWindowsマクロ、Windowsを使う作業を自動化・効率化できるというものです。
UWSCの使い方
さっそくですが、上記の手順4~7の作業をUWSCのプログラムにすると下記になります。
Dim kid Dim i Dim str Dim str2 Dim filePath Dim numOfPages Dim ret Dim x Dim y Dim width Dim height ret = FALSE str = INPUT( "ページ数を入力してください。" ) numOfPages = VAL( str ) filePath = INPUT( "保存先のファイルパスを入力してください。" ) while GETKEYSTATE( VK_LBUTTON ) sleep(0.1) wend FUKIDASI( "書籍の左上端をクリックしてください。" ) while !GETKEYSTATE( VK_LBUTTON ) sleep(0.1) wend x = G_MOUSE_X y = G_MOUSE_Y ret = FALSE FUKIDASI( "" ) while GETKEYSTATE( VK_LBUTTON ) sleep(0.1) wend kid = GETID( "xxxx" ) //怒られそうなのでここだけ伏せます ACW( kid ) FUKIDASI( "書籍の右下端をクリックしてください。" ) while !GETKEYSTATE( VK_LBUTTON ) sleep(0.1) wend width = G_MOUSE_X - x height = G_MOUSE_Y - y ret = FALSE FUKIDASI( "" ) Sleep(1) MSGBOX( "OKボタン押下後、処理を開始します。完了までPC操作しないようお願いします。", BTN_OK ) Sleep(3) ACW( kid ) For i = 0 to numOfPages step 1 str2 = FORMAT(i, 4) str2 = REPLACE( str2, " ", "0" ) SAVEIMG( filePath + "\" + str2, kid, x, y, width, height, 0, 100 ) KBD( VK_DOWN ) sleep(0.3) Next MSGBOX( "処理完了!!", BTN_OK )
キャプチャする書籍のページ数を入力、保存先を指定し、キャプチャする範囲を指定すると、あとは自動で作業してくれます。
何時間、何十時間もかかっていた作業が自動になりますし、このプログラムを書くのに30分程度しかかかってないです。
このようにWindowsマクロを自由に扱えるようになってしまうと、Kindle Unlimitedで無料の書籍をダウンロードしてファイル形式で保管しまくることができてしまうので決して悪用しないようにしましょう。
VBの扱い方がある程度わかっていれば、あとはUWSCの取説とにらめっこすれば間違いなく扱えるようになるはずです。
上記のようなプログラムを使うケース以外にも、マウス・キーボード操作を記録するモードもあります。
プログラム知識がなくても利用可能なので、一度お試しで使ってみてご自身の作業内容に活用できそうか確認してみると良いでしょう。
あるいは、こんなことができるのかということがわかれば、作業の自動化を外注にUWSCでプログラムを作ってもらうこともできます。
まとめ
UWSCというツールはかなり昔からあるツールでエンジニアであれば10人中8人は知っているのではないでしょうか。ですが、なんとなく日の目を浴びないちょっとマイナーなツールな印象です。
自動化というと、最近はPythonが目立ちますが、やりたいことに対していろいろ下準備が必要だったり。UWSCはそれ単体でWindows操作を自動化できるので素早く手軽に自動化できます。
周りの人は私のことを「古いSE」などと揶揄する人もいるのですが…常々書いていますが、プログラミング言語などの選択は適材適所です。
どの言語が優れている、劣っているなどの上下関係はあまりないです。必要であれば、必要に応じて私はどんな言語でも使います。未だにDOSコマンド・batファイルはフル活用していますし。
UWSCは私も、私以外のエンジニアも現役でフル活用している自動化ツールの1つです。ぜひお試しください。