会社の標準のメールソフトはアウトルックです。
このアウトルック、個人業務をする上ではオールインワンなので、メールだけでなく、タスクの管理やアドレス帳の管理までシームレスにできるというメリットは有るのですが、どうもキー操作が使いにくい…
ショートカットキーを覚えようとしたのですが、コンビネーションキーが多くて面倒くさいです。
で、AutoHotKey の練習も兼ねて、シングルキーでアウトルックの操作ができるようにしてみました。
■AutoHotKey
最初に AutoHotKey をご紹介しておきますと、
◇――――――――――――――――――――――――――
●AutoHotKeyとは?
AutoHotKeyはホットキーへの機能の割り当てなど常駐ソフトの作成に特化したスクリプトエンジン。多彩なコマンドが用意されており、GUIを持ったプログラムの作成も可能。
任意のキーの割り当て変更、マクロ、ウインドウ操作 ...
オープンソースの簡易プログラム言語、Windows用フリーソフト。
出典:AutoHotKey Wiki
――――――――――――――――――――――――――◇
です。以前の記事でもご紹介しましたが…
■作成コンセプト
どんな操作性にするかというと、たとえば、メールに返信するときには、
CTRL+R 差出人に返信
CTRL+SHIFT+R 全員に返信
を押さないといけないですよね。
まあ、エディタなどでテキストを入力するときに、何らかのコマンドを実行させようとすれば、通常のキーではダメなので、CTRL や ALT などと組み合わせて押さないといけないのはわかります。
しかし!、アウトルックの閲覧画面を見ているときに、ただ単に「R」キーを押しても、当然何も起きません。それなら、「R」で返信ができればいいじゃない!
GMail では C キーを押せばメールの作成画面が立ち上がります。
閲覧しているだけなんだから、単独キーでも十分なわけです。
もう一つ問題が、メールの閲覧画面で、プレビューをさせていて、「スペースバーでスクロール」という設定をしていても、IMEが直接入力モードになっていないと使えません。IMEが日本語入力モードになっている状態でスペースキーでスクロールしようとすると、フォーカスのあるリストビューなどの選択がどっかに吹っ飛んでいっちゃう。
これ、イライラしません?
私はとってもストレス…
ということで、単独キーで操作ができる、閲覧ウインドウをスクロールできるように作ってみました。
■スクリプト
AutoHotKey のインストールやスクリプトについては、他の記事に譲ります。適当に検索して、ご自分のわかりやすいものを見つけてください(相変わらず不親切…)。
ここでは、すでにインストールが済んでいて、スクリプトもある、という状態から話は始まります。
スタートアップでロードしている AutoHotKey のスクリプトの最初の方にに以下の行を追加します。
◇――――――――――――――――――――――――――
SetTitleMatchMode, 2 ; タイトルの検索 = 2 (部分一致)
――――――――――――――――――――――――――◇
このオプション設定は、タイトルを検索するときに、部分一致(一部でも一致すればOK)で検索できるようにするオプション。
これがないと、操作対象をタイトルに表示しているようなアプリ(ほとんどだと思う)では、操作対象のウインドウを特定できなくなります。
で、あとは適当な場所に以下の設定を追加します
◇――――――――――――――――――――――――――
#IfWinActive, Microsoft Outlook ; アクティブウインドウがアウトルックのメイン画面なら
1:: Send, {Blind}+^1 ; CTRL+SHIFT+1
2:: Send, {Blind}+^2 ; CTRL+SHIFT+2
3:: Send, {Blind}+^3 ; CTRL+SHIFT+3
4:: Send, {Blind}+^4 ; CTRL+SHIFT+4
5:: Send, {Blind}+^5 ; CTRL+SHIFT+5
6:: Send, {Blind}+^6 ; CTRL+SHIFT+6
7:: Send, {Blind}+^7 ; CTRL+SHIFT+7
8:: Send, {Blind}+^8 ; CTRL+SHIFT+8
9:: Send, {Blind}+^9 ; CTRL+SHIFT+9
d:: Send, {Blind}^d ; 削除
c:: Send, {Blind}+^m ; 新規メール作成
j:: Send, {Blind}{Up} ; 1行上
k:: Send, {Blind}{Down} ; 1行下
i:: Send, {Blind}{PgUp} ; 1ページ上
m:: Send, {Blind}{PgDn} ; 1ページ下
t:: Send, {Blind}^2 ; タスク一覧
y:: Send, {Blind}^3 ; 予定表一覧
u:: Send, {Blind}^1 ; メール一覧
e::
Inputbox, SearchText, "検索"
Send, ^e
Send, %SearchText%
sleep 1000
Send, {Enter}
return
n:: ; 閲覧画面へフォーカス
Send, {Blind}^e
Send, {Tab 4}
return
b:: ; メールリスト画面にフォーカス
Send, {Blind}^e
Send, {Tab 3}
return
r:: Send, {Blind}+^r ; CTRL+SHIFT+R 全員返信(Outlook では CTRL+R が送信者のみに返信になっているので)
#IfWinActive
――――――――――――――――――――――――――◇
まあ、コメントに書いてあるので、読んでいただければだいたいわかるでしょう。
ウィンドウタイトルに "Microsoft Outlook" があるものに対してだけ、この設定が有効です。ですので、他のウインドウでは、普通にテキストが入力できます。
●メール操作
メールビューのときだけ、
1〜9: 「クイック操作」の番号
d : メール削除
c : メール新規作成
r : 全員返信
のように修飾キーを押さずに操作できます。
「クイック操作」というのはアウトルックのユーザ定義マクロみたいなもんです。たとえば、
フラグをつけて
分類を未処理にして
既読にして
フォルダ××へ移動
みたいな処理をいっぺんにやってくれます。私はこれをいろいろなパターンに対応できるように定義しています。クイック操作は今回のテーマではないので、またそのうち…
●移動キー
また、移動系は、右ダイヤモンドキー配列(もどき)で、
j : 1行上
k : 1行下
i : 1ページ上
m : 1ページ下
操作できます。操作対象(フォーカスのあるペイン)は、
n : 閲覧ウインドウ
b : メールリストウインドウ
で移動します。
●一覧の移動
タスク、メール、予定表への切り替えは
t : タスク
y : 予定表
u : メール
で切り替わります。アドレス帳などは、私が滅多に使わないので定義してません。
メールの作成画面で、メールアドレスの先頭の文字を入れれば補完機能が働くので、そっちのほうが早い。
●検索系
通常だと Windows の エクスプローラ と同様に CTRL+E で検索ボックスに行きますが、この設定だと検索ボックスでも通常のテキストは入力できません。このため、検索のときには E キーが押されたら、テキスト入力ボックスを表示して、これを後で検索ボックスに入力するようにしています。
ここで、検索ボックスに入力するときに、 Send を使っているので、アウトルックがインクリメンタルサーチに行ってしまい、反応が遅くて、すべてのテキストを入力できないので、Send 実行後1秒だけ待つようにしています。
ここらへんは、クリップボードを使うと良くなるみたいですが、
参考サイトAutoHotkey:文字をまとめて高速入力する関数InsertTextを作る
まあ、そこまで頻度は高くないので放置してあります。待ち時間は環境に合わせて調整が必要かも。