1000円のテンキーを高機能なプログラマブルキーボードにする方法 1【RPAの補助にも】

FacebooktwitterredditpinterestlinkedinmailFacebooktwitterredditpinterestlinkedinmail

みなさん、こんにちは。楽して働きたい人です。

流行ってますよね、RPA。そして、流行ってますよね。キーボードショートカット。

そんなの、昔から使ってるよ! なんていう人も多いと思います。まあ、筆者もその一人です。

一方で、windows10になってから、OS単位で追加された便利ショートカットも沢山あり、慢心せずに覚えて行かなきゃなぁとも思います。

ところで、いくら便利であっても、やっぱりショートカットキーにはそれなりに弱点があります。それは……

ショートカットキー仕事術の弱点とは?

押しづらいキーがあることです。また、量があまりに多くなれば(そして使うアプリケーションがふえれば)、いちいち覚えていられなくなってついついマウスに手が伸びる……ということも起こり得ます。みんながみんな、Excelだけ使うわけでもないですしね。

また、昨今人気のRPA。MicrosoftのPower Automate Desktop が無料で開放されたことで、その人気が留まる気配はありません。ショートカットキー仕事術の次は、Power Automate Desktop の書籍が人気になるんじゃないでしょうか?

そんな飛ぶ鳥を落とす勢いのRPAですが、人間がいなくても勝手に動く全自動RPAと、人間が任意のタイミングで起動する半自動RPAの二種類に大別することができます。半自動RPAについては、マウス操作の起動の他、ショートカットキーでも起動できる場合があります(ツールによります)。というか、それこそ効率性を追求するならショートカットキーですよね。

ただ、そのショートカットキーも覚えなければいけない……。自分で覚えるだけならともかく、同僚や部下、他部署の人間に覚えさせなければいけない場合も多々あります。

また、余りない事例だとは思いますが、キオスク端末にRPAを設置することで、簡易的な、来客対応端末を設置することも考えられます(コロナ禍で自動対応の需要は増えました)。そんなときに、マウスやキーボードショートカットを使わせるのはなかなか難しいです。

ショートカットキーを楽に使う その1

そんなショートカットキーを楽に使える、そういうモノも世の中には多数あります。

代表的なのが、ゲーミングデバイスの中でも、特に左手用キーボードなどと言われるようなものです。プログラマブルキーボードとも言います。

形は多種多様ですが、主として右手でマウス、左手でそのゲーミングデバイスを使用するのが一般的です。これは、通常のキーボードと異なり、自分で各キーに機能を自由に割り振ることができます。

Ctrl+CやCtrl+Vのようなショートカットキーはもちろん、一連のキー入力のような、本当に簡易的なRPA(マクロ)を備えている場合も多いです。また設定を自動/半自動で切り替えて用途にあわせて自由なショートカットキーの構成が作れます。自由に機能が割り振れるのでプログラマブルキーボードということですね。

これがあれば、アプリケーションごとに設定をすることで、新しく複雑なショートカットキー、押しにくいショートカットキーを覚えることなく仕事の効率をあげることができます。

が、欠点としてお値段がお高い。そして、見た目がゲーミングデバイスなので、職場で浮く。実際にはゲーミングデバイスではないプログラマブルキーボードもありますが、こちらは更にお値段がお高いです。

これがまだ、オフィスで目立つくらいであればいいですが、テレワーク用の道具として経費を申請したら、間違いなく疑いの目で見られることでしょう。

ショートカットキーを楽に使う その2

もう一つの方法は、AutoHotkey や KeyToKey (後日紹介予定)のようなマクロツールを使うことです。

特にAutoHotkeyはその名が示すように、ホットキー・ショートカットキーとして使われることが前提です。

そのため「テンキーの1を押したらコピー」のような、ショートカットキーを覚えたくないな……といった用途には絶大な効力を発揮します。

しかし、こういったマクロツール・ショートカットキー拡張ツールにも欠点が存在します。それは、物理的なキーが増えないことです。

ゲーミングデバイスでは、デバイスに専用の機能を割り当てることができました。しかし、マクロツールではもともとあるキーボードのキーを潰して(あるいは専用のショートカットキーを設定して)、他のショートカットキーを動かすことになります。

ファンクションキー(Fキー)を利用するなど、色々やり方はありますが、どうしても元々アプリで設定されていたショートカットキーとの競合が起きてしまう場合があります。

できれば、ゲーミングデバイスのように専用のキーで……、しかもオフィスに馴染んで、お財布が傷まない形でショートカットキーを拡張したいですよね。

LuaMacros を使う

そんなソフトが、実はあったんです。それがLuaMacros です。

GitHub: LuaMacros

LuaMacros の機能は簡単で、特定のキーが押されたときに、簡単なマクロを実行することだけです。総合的な機能面でいえば、申し訳ないですがAutoHotkeyの足下にも及びません。

ただ、圧倒的な強みとして、入力に使用されたキーボードごとにマクロを変えられるということだけです。これを利用することで、外付けテンキーをUSBで接続し、ショートカットキーを割り当てる……ということが可能になります。もちろん、メインのキーボードについているテンキーは、ちゃんとテンキーとして機能します。

後付けのテンキー単体であれば、物にもよりますが1,000円未満で買えるものもあります。

さらにスペースさえ気にしなければ、新PCについてきて、なんとなくオフィスに転がったままのキーボードを接続し、一つは完全にショートカットキー専用として運用することも出来てしまいます。

そんなことはなかなかない、と思いますが、実は映像制作などではもの凄い量のショートカットキーが求められる場合があります。もちろん、マウスで代用したり、ものすごく高価な専用デバイスが出ていたりもしますが、導入はなかなか難しいです。

一方で、SNSや動画サイトなどでのマーケティングが重要になり、一般企業でも社内で動画制作・編集を行っているところも増えています。そこで、低予算で作業効率を上げられたら嬉しいですよね?

そんな夢のようなツールがLuaMacros なのです。

実際に使ってみる

インストールと実行

インストールは非常に簡単で、 GitHub: LuaMacros の下の方から、Binary Download を探し、その下にあるzipファイルをダウンロードし、任意のフォルダに解凍するだけです。

それだけですが、一点アドバイスとしては、C:\LuaMacros のような、日本語やスペースの含まれない場所に解凍することをお勧めします。

解凍すると、LuaMacros.exeというファイルがあるので、それをダブルクリックすれば起動できます。

画面の説明

画面構成については以上のような形です。なんというか……恐ろしく潔いですね。

マクロ入力画面で入力して、実行ボタンを押して、期待通りの動きをしたら保存しておく。というのが基本の流れになります。

とはいえ、Lua言語というプログラム(スクリプト)言語なので、お気に入りのエディタがあればそれを使っても構いません。筆者はいつも大体Vimを使っています。

はじめてのLuaMacros

以下のマクロを、マクロ画面にコピーペーストなり、手で入力するなり行います。(Pythonとなっていますが、LUAです……)

「どんなものかな……」と思っていて、まだ余分なテンキーやキーボードを用意していない方も大丈夫。簡単な例を試すだけならキーボードひとつでも十分です。

lmc_assign_keyboard("MACROS")

lmc_set_handler("MACROS", function(btn, dir)
    if(dir == 1) then
        return
    end
    if(btn == 96) then
        lmc_send_keys("{TAB}")
    end
end
)

入力が終わったら、実行ボタンをクリックします。すると……、

こんな画面になるので、キーボードで何かキーを入力します。

すると、マクロの入力画面に戻りますが、これで、「何かを入力したキーボード」がLuaMacros専用のキーボードとなります。この状態で、テンキーの0を入力すると、タブキーが押されたことになります。そして、その他のキーを押しても、何も起こりません。何故なら、何も設定していないからです(ときどき、LuaMacrosで設定したキーと、本来のキーが両方入力されるパターンになりますが、これが仕様なのかバグなのかは不明です)。

さて、このままではキーボードが使えませんね? LuaMacrosを終了するか、もう一度実行ボタンをクリックして、今度は「Cancel」ボタンをクリックすると、キーボードの「専用状態」が解除されます。

マクロの解説

それでは、先ほどのMacroを1行ずつ解説していきます。

lmc_assign_keyboard("MACROS")

これが、「キー入力をしたキーボードを、専用のキーボード化する」ためのコマンドです(正確にはキー入力したキーボードにMACROSという名前を付けています)。

 

lmc_set_handler(“MACROS”, function(btn, dir)

この1行で、MACROSと名前がつけられたキーボードの入力を取得することになります。MACROSと名前を付けたのが最初の1行ですね。

function(btn, dir)はbtn(ボタン)dir(方向)を引数にとる無名関数です。難しいことを考えない場合は、”MACROS”の部分が、キーボードが増えて来たりすると色々な名前になる(変わる)ことを覚えておけば十分です。

if(dir == 1) then return end

dirが1の時というのは、「キーが押されている間ずっと繰り返される」ということを意味します。例えば、テンキーの入力を矢印キーに置き換えたいという場合などは、thenとendの間、returnの前に入力したいコマンド(以後解説)を書きます。

returnを記載しているのは、このif構造の後は、今度は「キーが離されたときのみ」実行したい内容なので、ここで実行を終えています。

if(btn == 106) then

btn(ボタン)が106の時、つまりテンキーの0が押された後、「離されたとき」に次のendまでの間を実行します。

何故離されたときになるかというと、dirが1の時が「押されたとき、押されている間」で、「dirが0の時」は離されたときということになるためです。

このdirの使いわけですが、「ショートカットキーを楽に入力したい!」「RPAの起動に使いたい!」という場合などは、dirが1でないときに実行した方がいいです。1回しか押してないつもりでも、2回、3回と入力されてしまうことがあります。

逆にdirが1の時というのは、例えば「Shiftキーの代わりに使いたい」「画像編集ソフト、映像編集ソフトなどで押しっぱなしの間だけ効果があるキーがある」などの場合に使います。一般的なオフィス業務ではあんまり使わないですね。もちろん、テンキーを完全に他のキーの代わりに使いたい(F1~F12キーがないキーボードで使いたいなど)ときにも使えます。

また、btn == 96の「96」ですが、これはキーコードというPC内部でキーを判別するためのものになります。

キーコードについては、以下のサイトが参考になります。

https://keycode.info/

また、キーコードを直接入力する方法の他にも、

btn == string.byte('A')

のようにして、文字から入力されたキーを判別する方法もあります。ローマ字のキーなどは、この方法の方が楽ですね。

lmc_send_keys(“{TAB}”)

ここが、実際にキー入力を送信している部分になります。ここではタブキーを入力している(押して離している)だけです。

send_keysの名の通り、複数のキーを入力することができます。例えば、lmc_send_keys(“abc”)のようにすれば、abcと順に入力されます。タブキーと違い、{}がない点に気をつけてください。どちらかというとTABキーが特殊で、対応する半角1文字がない場合に、{}でくくって、キーの名前を記述します(後述)。

モディファイアキー(ctrl, shiftなどの修飾キー)も指定することが出来るので、

lmc_send_keys("^a^c")

のようにすると、Ctrl+A, Ctrl+Cと順に入力されます(普通、全て選択してからコピーされますね)。

もっと詳細にキー入力をコントロールしたい場合は、lmc_send_inputというコマンドもあります。

モディファイアキー
  • + Shift
  • ^ Ctrl
  • % Alt
  • # Win
  • & Tab(使う…?)
  • < 他のモディファイアと組み合わせて使う。左側のモディファイアキーの意味。+< で左Shift
  • > 同じく右側のモディファイアキーの意味(bugで機能していなかったが修正された?)。
特殊記号
  • {}  1文字で表現できないキー名を入力する。キー名一覧は公式wikiのList of Keysを参照。
  • ()  モディファイアキーに対してグループ化する。+(abc)で、ABCと入力される(shift a, b, cとなる)。+abcだとAbc。
  • ~ Enterキー
繰り返し

{TAB 5}のように、波括弧でくくって、キー名の後に半角スペースを入れ、数字を入力するとその回数だけ入力が繰り返される(この場合はTABが5回入力される)。

{1 5}のように、普通なら波括弧がいらないキーも繰り返しできますが、{a 5}のように、ローマ字の場合は大文字のAが入力されてしまうようです。

終わりに

今回の記事で、なんとなくLuaMacrosでどんなことができるかは分かっていただけたと思います。

正直なところ、とても取っつきやすいとは言えないツールですが、他にはない機能が魅力的です。特に、アプリケーションが高機能化し、デジタルトランスフォーメーションの推進やコロナ禍、テレワークなどで使用するアプリケーションが多くなっていくと、効率的に操作するための学習コストがどんどん増えて行きます。

生産性をあげるためとはいえ、そういう「本質的ではない」部分に大きなリソースを割くよりは、こういったツールを活用して仕事の環境をどんどんよくしていきたいですね。

楽して働きたい人でした。

FacebooktwitterredditpinterestlinkedinmailFacebooktwitterredditpinterestlinkedinmail

1件のフィードバック

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

最新の記事