はじめろぐ

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

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

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

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

マクロは PC 上の操作を自動化する機能のことです。私はよくブログに書くように、Excel VBA でマクロを作って Excel内での操作を自動化します。Excel マクロとは別にいわゆる Windows 画面での操作を自動化する Windows マクロというものも存在します。Windows マクロを作るためには、UWSC というプログラミング言語を使う必要があります (他にもWindows マクロを作る方法はあるのかもしれませんが、私は知りません)。これを使えるようになれば、会計事務所・経理職の業務で色々と活用することができます。今日は、まず UWSC の初歩的...
UWSC で Windows マクロを作って画面操作を自動化できる、会計事務所・経理職で使え... - My タックスノロジー

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

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

会計・税務ソフトは日頃使っていますが 100%自分の希望通りの機能が備わっているわけではありません。ここがもう少しこうなったらなぁ、、、、って思うことは山ほどあり歯がゆくなります。。ただ、それでも自分の要望に合うように標準品を逸脱した特注品をオーダーしたりすると、数百万円単位の出費になってしまうことでしょう(おそらく開発費がそのままチャージされます)。オンリーワンの仕様を作ってもらうなど現実的ではありません。私のいる事務所では会計・税務ソフトとも JDLを使っています。今日取り上げる事業概況説明書の作...
Excel から JDL の事業概況説明書への転記(コピペ)作業を自動化する、UWSC によ... - My タックスノロジー

以下↓が動画になります。左側が 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 関数の不具合の原因が分かって解決できれば良いんですけどね。

モバイルバージョンを終了