GoGoマクロのブログ

初心者向けマクロ講座「Go!Go!マクロ」の筆者三太郎の公式ブログです。

UWSC系のフリーソフトをExcelマクロで活用したい?

2017-10-11 15:43:34 | マクロ作成のコツ


ちょっと表題の質問が来ましたので、お答えします。
(やや上級レベルの内容です。)


まず、UWSCとはWindow上の画面操作(画面のどこかをマウスの
右や左ボタンでクリックしたり、キー入力したり)を、スクリプト
と呼ばれる言語(簡単なマクロ言語だと思えばよい)に記録して、
それを動かして同じ動作を再現することで、Window上の操作を
自動化しようというものになります。が、

そもそも、スクリプト言語自体も知らない非プログラマーであれば、
エクセルのマクロ(VBA言語)をちょっと覚えてやったほうが
余程簡単にマスターできる思いますし、

しかも、Excelよく使う人であればそのほうがずっと実用的ですし、
後々まで便利な事は確かです。(非プログラマーがスクリプト
覚えてもその他に使い勝手は殆どないです。)


具体的には、

 Call GetCursorPos(Pos)
 x = Pos.x
 y = Pos.y

これで、Window上のカーソル位置の座標が取得できますので、
(これ、マクロでシート上にでも書き込んで置いて、)次に、

 Call SetCursorPos(x, y)

これで、カーソルを自動移動して、

 Call mouse_event(&H2, 0, 0, 0, 0)
 Call mouse_event(&H4, 0, 0, 0, 0)

これで、その位置でマウスのボタンを押す、
です。

ちなみに、上記コードの&H2の部分は、

 Private Const MOUSEEVENTF_LEFTUP = &H4 '左ボタンUP
 Private Const MOUSEEVENTF_LEFTDOWN = &H2 '左ボタンDown
 Private Const MOUSEEVENTF_MIDDLEDOWN = &H20 '中央ボタンDown
 Private Const MOUSEEVENTF_MIDDLEUP = &H40 '中央ボタンUP
 Private Const MOUSEEVENTF_RIGHTDOWN = &H8 '右ボタンDown
 Private Const MOUSEEVENTF_RIGHTUP = &H10 '右ボタンUP

など定義されています。

なお、上記のGetCursorPosやmouse_event(もしくはSendInput)は、
Win32APIになりますから事前にDeclareの宣言( DLL参照)が
必要です。

あと、各種のキーボード操作に関しては、単純に

 SendKeys "^v", True  ' Ctrl + V キーを転送
 SendKeys "{ESC}"
 SendKeys "{ENTER}"
 SendKeys "{UP 5}"   ' ↑キーを5回押す
 SendKeys "ABC"

と言った具合になります。



コメント    この記事についてブログを書く
« 「関数とVBAの使い分け方... | トップ | 出来る人のこれは、すばらし... »
最新の画像もっと見る

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。

マクロ作成のコツ」カテゴリの最新記事