Windows マクロ作成ソフト UWSC を昔から使っています。
あまり一般的ではありませんが、会計事務所や経理の仕事にも使えるソフトです。
基本的な使い方についてはこちらの記事↓ に書きました。
このソフトを使えば、Windows のキーボード操作を自動化することもできます。
以前、こちらの記事で Excel シート上のデータを税務ソフト(事業概況システム)に、書き写すキーボード操作を自動化する方法について書きました。
以下↓が動画になります。左側が Excel シート、右側が税務ソフト(事業概況システム)で、Excel シート上の実行ボタンをクリックすると操作が開始します。
さて、UWSC を使ったキーボード操作を自動化する方法として SENDSTR 関数を使う方法と KBD 関数を使う方法の2つがあります。
自分がこれまでこの2つの関数を使ってキーボード入力を自動化した感想としては、以下のような特徴があります。
●KBD 関数を使う場合、コードの記述が長くなるけど動作は安定
上の動画は KBD 関数を使ったものです。
SENDSTR 関数では動作するときとしないときがありました。。
理由はよく分かりません。
今日は、両方の関数の使い方を紹介しておきます。
1、メモ帳に数値を書き出す場合
開いたメモ帳に数値を書き出す場合を考えます。
メモ帳に「123456」と書き出せるように UWSC コードを組みたいと思います。
2、SENDSTR 関数を使う場合
SENDSTR 関数
SENDSTR 関数は文字列を書き出す関数です。以下のようにして使います。
書き出し先を「ID 番号」で指定します。
今回のケースでは、メモ帳の ID 番号を取得して指定しなければなりません。
UWSC コード
以下に UWSC コードを示します。
1 2 3 4 5 |
NoteID = GETID("メモ帳") //既に開いているメモ帳の ID を取得 Num = 123456 SENDSTR(NoteID, Num) //数値をメモ帳に書き出す |
NoteID = GETID(“メモ帳”)
で既に開いているメモ帳の ID を取得します。
変数 Num にはメモ帳に書き出したい数値を入れます。今回は「123456」
SENDSTR(NoteID, Num)
で ID 番号が「NoteID」のものに、Num を書き出します。
つまり、メモ帳に 123456 と書き出すように指示しているんですね。
3、KBD 関数を使う場合
KBD 関数
KBD 関数はキーボードのキーを1つずつ操作する(押すのと同じ)関数です。
以下のようにして使います。
「仮想キーコード」とは、PC のキーボード1つ1つに割り当てられたコードのことです。
数値は以下のようになります。
0 は VK_NUMPAD0
1 は VK_NUMPAD1
・
・
・
9 は VK_NUMPAD9
UWSC コード
以下に UWSC コードを示します。
1 2 3 4 5 6 7 8 9 10 |
NoteID = GETID("メモ帳") //既に開いているメモ帳の ID を取得 ACW(NoteID) //メモ帳をアクティブにする KBD(VK_NUMPAD1) KBD(VK_NUMPAD2) KBD(VK_NUMPAD3) KBD(VK_NUMPAD4) KBD(VK_NUMPAD5) KBD(VK_NUMPAD6) |
ACW(NoteID)
で ID 番号が「NoteID」のものをアクティブにしています。
つまり、メモ帳をアクティブにしていることになりますね。
そして、以下の KBD 関数の羅列で「123456」とキーボード入力しているのです。
KBD(VK_NUMPAD1)
KBD(VK_NUMPAD2)
KBD(VK_NUMPAD3)
KBD(VK_NUMPAD4)
KBD(VK_NUMPAD5)
KBD(VK_NUMPAD6)
4、まとめ
UWSC を使ってキーボード操作を自動化する方法を紹介しました。
SENDSTR 関数と KBD 関数
SENDSTR 関数の方が UWSC コードが短くて済むため使いやすいのですが、ただなぜか動作が不安定です(動作しないことがある)。
一方で KBD 関数は入力したいキーの数が増えれば増えるほど UWSC コードが長くなってしまう欠点がありますが、動作は安定しています。
ですので、KBD 関数を使うことも多いです。
SENDSTR 関数の不具合の原因が分かって解決できれば良いんですけどね。