スポンサーリンク

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

The following two tabs change content below.

松井 元(まつい はじめ)

静岡県三島市の松井会計事務所に勤務する理系税理士。 文理両方のスキルの融合を考えており、このブログは以下を中心に更新している。
●税金・会計に関すること
●IT(Excel、VBAなど)を使った業務効率化
●自分のこと(考え、私生活)

さらに詳細なプロフィールはこちら
松井会計事務所へのお仕事ご依頼・お問い合わせはこちら
税金・会計の無料メルマガはじめます

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

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

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

UWSC で Windows マクロを作って画面操作を自動化できる、会計事務所・経理職で使えるソフト UWSC
マクロは PC 上の操作を自動化する機能のことです。 私はよくブログに書くように、Excel VBA でマクロを作って Excel内での操作を自動化します。 Excel マクロとは別にいわゆる Windows 画面での操作を自動化する ...

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

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

Excel から JDL の事業概況説明書への転記(コピペ)作業を自動化する、UWSC によるキーボード操作
会計・税務ソフトは日頃使っていますが 100%自分の希望通りの機能が備わっているわけではありません。 ここがもう少しこうなったらなぁ、、、、って思うことは山ほどあり歯がゆくなります。。 ただ、それでも自分の要望に合うように標準品を逸脱し...

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