以前にも何度かこのブログで触れてますが、キーボードで操作しているときに、マウスに持ち替えると効率が下がります。
ひとつには、手の移動、もうひとつは手をキーボードに戻すときにホームポジションをもう一度探さないといけないこと。さらに、マウスは PC を操作するのは一瞬(機能しているのはクリックしたときだけであとは単なる無意味な移動)ですね。
■移動のムダ
よく、トヨタ式ムダ取りで、「移動のムダ」というのが言われます。
モノを作るのにおいて、移動させているというのは、なんら価値を更かしていないのでムダだから、極力移動(モノの移動も手の移動も)は小さく、理想的には移動ゼロで作業ができるように考えられています。
同じことはマウス操作にも言えます。
マウスを右左、上下に動かしても、作っている文章は何も変わりません。つまり生産性はゼロです。
だからといって、Windows ではマウス操作でないと操作できないアプリが結構あるんですよ。これが面倒くさい。
なので、極力マウスには触らずにPCを操作できるといいですね。
たとえば、ウインドウを切り替えるのに、マウスでタスクバーのアプリのアイコンをクリックする、とかではなくて、ALT+WINで切り替えるとか、WIN+数字 で切り替えるとかするとすばやくWindowsの操作ができるようになります。
■マウス操作を減らすWindowsの設定
マウスのプロパティを設定しましょう。
ポインターを自動的に規定のボタンの上に移動する
を設定しておくだけでもかなり効率化ができます。
その他にもいろいろ便利な設定があるので、この際見直してみては。
■ショートカットキーを覚える
この記事の主旨ではありませんので省略しますが、Windows本体やそれぞれのアプリではショートカットキーが設定されているものがあります。これはぜひ覚えましょう。覚えるまでは大変ですけど、一度体が覚えてしまえば、操作速度は格段に上がります。
いい例が CTRL+S。
これは大抵のアプリは共通で、今の編集しているファイルを保存します。これを覚えておくと、ちょっと入力したらCTRL+Sを押すようになって、「PCが吹っ飛んで半日の作業も吹っ飛んだ〜!!」とか泣かずにすみます。
■マウスをAutoHotKeyで移動させる
で、ようやく本題。
どうしてもマウスでないとできない操作のときには、マウスカーソルをキーボードでマウスを移動させると、マウスに触らなくて住みます。特にノートPCでマウスを付けずに、タッチパッドだけで操作しているような時にすばやく移動させることができます。
どうやって希望の位置をPCに教えるかというと、視線誘導………なんてできるわけがないので…
今アクティブなウインドウを分割して、その位置に対応するキーを押す、という方法を取ります。
最近のPCには12個のファンクションキーがありますよね。
これをアクティブウインドウに割り当てます。
ざっというと、今表示しているウインドウに、縦3行、横4列に分割した格子をイメージしてください。
┌───┬───┬───┬───┐
│ 1 │ 2 │ 3 │ 4 │
├───┼───┼───┼───┤
│ 5 │ 6 │ 7 │ 8 │
├───┼───┼───┼───┤
│ 9 │ 10 │ 11 │ 12 │
└───┴───┴───┴───┘
※等幅フォントで見てください
こんな感じにウインドウが分割されているイメージ。
で、あとはこれをキーにわりあてるだけ。
でも、こまかな移動はこれでは難しいので、あとはキーボードでマウスを移動させます。ラストワンマイルがマウスに持ち替えないといけないでは、もともとの目標、マウスを触らないにたどり着けませんので……
というのは、ちょっと言い訳があって、AutoHotKey でマウスを移動させて物理マウスを触ると、どういうわけかマウスカーソルが元いた位置に戻っちゃうんですよ。原因不明。どなたか対策をご存知の方教えてください
■スクリプト
スクリプトはこんな感じです。
あ、ちなみに #CoodeMode はウインドウ基準になってます。多分ディフォルトなので、やらなくていいですが…
#CoordMode, Mouse, Window
★〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓
vk1Dsc07B & f1:: MouseMoveWindow( 0, 0)
vk1Dsc07B & f2:: MouseMoveWindow( 1, 0)
vk1Dsc07B & f3:: MouseMoveWindow( 2, 0)
vk1Dsc07B & f4:: MouseMoveWindow( 3, 0)
vk1Dsc07B & f5:: MouseMoveWindow( 0, 1)
vk1Dsc07B & f6:: MouseMoveWindow( 1, 1)
vk1Dsc07B & f7:: MouseMoveWindow( 2, 1)
vk1Dsc07B & f8:: MouseMoveWindow( 3, 1)
vk1Dsc07B & f9:: MouseMoveWindow( 0, 2)
vk1Dsc07B & f10:: MouseMoveWindow( 1, 2)
vk1Dsc07B & f11:: MouseMoveWindow( 2, 2)
vk1Dsc07B & f12:: MouseMoveWindow( 3, 2)
MouseMoveWindow(x, y)
{
WinGetPos, orgX, orgY, Width, Height, A ; 現在のウインドウの位置
w := Width / 4
h := Height / 3
MouseMove, orgX + w * x + w / 2 , orgY + h * y + h / 2
return
}
; マウスの移動は 左シフト+カーソルキー
; テンキーもFn キーのコンビネーションもできる。キーボード配置
; Num / * - Num / * -
; 7 8 9 + Home UP PgUp +
; 4 5 6 Left Right
; 1 2 3 End DN PgDown
; 0 . Ins Del
Numpad2::
NumpadDown::
NumpadDiv::
RShift & Up:: MouseMoveFunction( 0, -25)
Numpad0::
NumpadIns::
RShift & Down:: MouseMoveFunction( 0, 25)
Numpad3::
NumpadPgdn::
RShift & Right:: MouseMoveFunction( 25, 0)
Numpad1::
NumpadEnd::
RShift & Left:: MouseMoveFunction(-25, 0)
;
; ズーム: 無変換+PgUp/Down またはテンキーの+/-
NumpadAdd::
vk1Dsc07B & Pgup:: Send, ^{WheelUp}
NumpadSub::
vk1Dsc07B & Pgdn:: Send, ^{WheelDown}
;
; マウスのクリック操作
; 無変換+ENTER, 左シフト+Enter: 左クリック
; 無変換+左シフト : 右クリック
RShift & Enter::
vk1Dsc07B & Enter:: Click, Left
vk1Dsc07B & Rshift::Click, Right
; パラメータで指定された相対位置に移動させる
; SHIFT / CTRL で加速、ALT で減速
MouseMoveFunction(dx, dy)
{
MouseGetPos, x, y
if (IsKeyDown("LShift") == "D") {
dx *= 5
dy *= 5
}
if (IsKeyDown("Alt") == "D") {
dx /= 5
dy /= 5
}
if (IsKeyDown("Ctrl") == "D") {
dx *= 2
dy *= 2
}
MouseMove, x+dx, y+dy
return
}
;
; キー押下の検出処理
IsKeyDown(key)
{
GetKeyState, sss, %key%
return %sss%
}
―――――――――――――――――――――★