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キー