スポンサーリンク

Windows マクロ作成ソフト UWSC を使ってキーボード操作を自動化する方法、SENDSTR 関数と KBD 関数


Windows マクロ作成ソフト UWSC を昔から使っています。

あまり一般的ではありませんが、会計事務所や経理の仕事にも使えるソフトです。

基本的な使い方についてはこちらの記事↓ に書きました。

このソフトを使えば、Windows のキーボード操作を自動化することもできます。

以前、こちらの記事で Excel シート上のデータを税務ソフト(事業概況システム)に、書き写すキーボード操作を自動化する方法について書きました。

以下↓が動画になります。左側が Excel シート、右側が税務ソフト(事業概況システム)で、Excel シート上の実行ボタンをクリックすると操作が開始します。

さて、UWSC を使ったキーボード操作を自動化する方法として SENDSTR 関数を使う方法と KBD 関数を使う方法の2つがあります。

自分がこれまでこの2つの関数を使ってキーボード入力を自動化した感想としては、以下のような特徴があります。

●SENDSTR 関数を使う場合、コードの記述が短く済むけど動作が不安定
●KBD 関数を使う場合、コードの記述が長くなるけど動作は安定

上の動画は KBD 関数を使ったものです。

SENDSTR 関数では動作するときとしないときがありました。。
理由はよく分かりません。

今日は、両方の関数の使い方を紹介しておきます。

スポンサーリンク

1、メモ帳に数値を書き出す場合

開いたメモ帳に数値を書き出す場合を考えます。

メモ帳に「123456」と書き出せるように UWSC コードを組みたいと思います。

2、SENDSTR 関数を使う場合

SENDSTR 関数

SENDSTR 関数は文字列を書き出す関数です。以下のようにして使います。

SENDSTR(ID 番号, 文字列)

書き出し先を「ID 番号」で指定します。

今回のケースでは、メモ帳の ID 番号を取得して指定しなければなりません。

UWSC コード

以下に UWSC コードを示します。

NoteID = GETID(“メモ帳”)
で既に開いているメモ帳の ID を取得します。

変数 Num にはメモ帳に書き出したい数値を入れます。今回は「123456」

SENDSTR(NoteID, Num)
で ID 番号が「NoteID」のものに、Num を書き出します。

つまり、メモ帳に 123456 と書き出すように指示しているんですね。

3、KBD 関数を使う場合

KBD 関数

KBD 関数はキーボードのキーを1つずつ操作する(押すのと同じ)関数です。

以下のようにして使います。

KBD(仮想キーコード)

「仮想キーコード」とは、PC のキーボード1つ1つに割り当てられたコードのことです。

数値は以下のようになります。

0 は VK_NUMPAD0
1 は VK_NUMPAD1



9 は VK_NUMPAD9

UWSC コード

以下に UWSC コードを示します。

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 関数の不具合の原因が分かって解決できれば良いんですけどね。