Microsoft Office WordのショートカットキーをEmacs風にする
WordだとIMEのCtrl+t(半角英数にする)がインデント機能に割り当てられてて、
無効化する方法無いのかと思ったら意外といろいろ変えられることに気づいたので、
Wordのキーバインドを一通りEmacs化してみた。
設定画面はMicrosoft Office Word 2003なら「ツール > ユーザー設定 > キーボード」、
Microsoft Office Word 2007なら「左上のロゴ > Wordのオプション > ユーザー設定 > ショートカットキー: ユーザー設定」から行ける。
「分類」で「すべてのコマンド」を選んで「コマンド」から割り当てたい機能を選び、
「割り当てるキーを押してください」で使いたいショートカットキーを入力。
最後に左下の「割り当て」で適用される。
自分の場合は以下のように設定した。
ショートカットキー | コマンド | 動作 | |
---|---|---|---|
Ctrl+B | CharLeft | カーソルを1文字左へ | |
Ctrl+F | CharRight | カーソルを1文字右へ | |
Ctrl+P | LineUp | カーソルを1行上へ | |
Ctrl+N | LineDown | カーソルを1行下へ | |
Ctrl+A | StartOfLine | カーソルを現在行の一番前へ | |
Ctrl+E | EndOfLine | カーソルを現在の行の一番後ろへ | |
Alt+<(Alt+Shift+.) | StartOfDocument | カーソルを文書の最初へ | |
Alt+>(Alt+Shift+,) | EndOfDocument | カーソルを文書の最後へ | |
Ctrl+\ | EditUndo | 元に戻す | |
Ctrl+_(Ctrl+Shift+\) | EditRedo | やり直し | |
Ctrl+W | EditCut | 切り取り | |
Alt+W | EditCopy | コピー | |
Ctrl+Y | EditPaste | 貼り付け | |
Ctrl+S | EditFind | 検索 | |
Alt+R | EditReplace | 置換 | |
Ctrl+X,F | FileOpen | 開く | |
Ctrl+X,S | FileSave | 保存 | |
Ctrl+X,W | FileSaveAs | 名前を付けて保存 | |
Ctrl+X,K | FileCloseOrExit | 作業中の文書を閉じる | |
Ctrl+X,C | FileExit | Wordを終了する |
ここまでの方法だとCtrl+DやCtrl+Hのような、
元から用意されていない(多分)コマンドが割り当てられない。
ワードのすごいところは、マクロもショートカットに割り当てられる所。
登録したい動作をマクロとして記録すれば結構いろいろ出来る。
2003の場合は「ツール > マクロ > 新しいマクロの記録」、2007の場合は「開発 > マクロの記録」を実行。
「マクロの記録」という画面が出て来るので、デフォルトのまま「OK」をクリックする。
マクロ記録モードになるので、登録したい動作(Ctrl+DならDeleteボタンを押すなど)をして「記録の終了」をすればOK。
記録が終わったら、Visual Basic Editorを起動(Alt+F11)して、記録した内容を確認する。
「Normal > 標準モジュール > NewMacros」というファイルを開くと、先ほど作成した動作を表す関数が作成されている。
Sub Macro1() ' ' Deleteボタンを押した場合の例 ' ' Selection.Delete Unit:=wdCharacter, Count:=1 End Sub
Subの後のMacro1と言うのが動作の名前になっているので、分かりやすい名前に変えると良い。
同様の方法で一通り登録したのが以下の内容。
NewMacrosファイルにコピペすればそのまま使えるはず。
Sub DeleteChar() ' Deleteキー Selection.Delete Unit:=wdCharacter, Count:=1 End Sub Sub BackwardDeleteChar() ' Back Spaceキー Selection.TypeBackspace End Sub Sub TypeEnter() ' Enterキー Selection.TypeParagraph End Sub Sub KillLine() ' カーソル以降の現在行をカット Selection.EndKey Unit:=wdLine, Extend:=wdExtend Selection.Cut End Sub Sub NextPage() ' 下にスクロール Selection.MoveDown Unit:=wdScreen, Count:=1 End Sub Sub PreviousPage() ' 上にスクロール Selection.MoveUp Unit:=wdScreen, Count:=1 End Sub
NewMacrosファイルを保存したら、最初に開いた「キーボードのユーザー設定」画面で、
「分類」から「マクロ」を選べば、関数名(上の例だとDeleteCharなど)がコマンドの所に表示されるので、
それぞれ割り当てればOK。
ショートカットキー | コマンド | 動作 |
---|---|---|
Ctrl+H | BackWardDeleteChar | Back Spaceキー |
Ctrl+D | DeleteChar | 一文字削除 |
Ctrl+K | KillLine | カーソル以降の現在行をカット |
Ctrl+V | NextPage | 下にスクロール |
Alt+V | PreviousPage | 上にスクロール |
Ctrl+M | TypeEnter | Enterキー |