【更新】Word for Mac 2016でEmacs風のキーアサイン(Mac標準)を実現する(最新)

いぬがすき
7 min readFeb 12, 2017

--

WordをMacに(再)インストールしたら真っ先にやるべき設定

Word for 2011が起動しなくなったので、AppCleanerで一気に削除したら、Word for 2016も調子がおかしくなった。やむなく完全にアンインストールしたところ、設定しておいたEmacs風のキーアサインも吹っ飛んでしまった……。

再設定したので、主に自分向けにメモしておく。ネットを検索すると、先達たちのメモがいろいろ見つかるが、ほとんどがWord 2011時代のもので、コマンド(ここでいう「コマンド」とは、Word上の「機能」のこと)名が古く、役に立たない。

Word 2011時代、そして2016も少し前まではコマンドが、なんちゃって英語で比較的分かりやすかったのだが、最近になって中途半端に日本語化されて探しにくくなっている(全部が翻訳されたわけではなくて、一部は英語のまま残っている)。

【環境】Microsoft Word for Mac 2016 (バージョン15.30)/macOS Sierra

「ツール」→「ショートカットキーのユーザー設定」(ウィンドウを開くと、「ショートカットキーの割り当て」という名称だが)から「すべてのコマンド」を選択した状態で、設定を行う(下図)。

なんかわかりにく図になってしまったが、図の右上の「コマンド:」の入力欄に、設定したい機能をキーボードで一字一字入力、その状態で、①指定したいキーアサイン(Ctrl+Fなど)を入力(これは、実際のそのキーを押す)して②その左の「割り当て」を押すと設定される。

具体的には「コマンド:」に以下の→の左側を入力して、→の右側のキーの組み合わせを指定する。

  • 「右に1文字移動」 → Ctrl+F
  • 「左に1文字移動」 → Ctrl+B
  • 「カーソルを1行下へ移動」 → Ctrl+N
  • 「カーソルを1行上に移動」 → Ctrl+P ※1 Google日本語入力と併用の場合、注意事項あり
  • 「行頭」 → Ctrl+A
  • 「行末」 → Ctrl+E
  • 「右の1文字を削除」 → (Ctrl+D)※2 このキーは設定しなくても使えるようになった
  • 「左の1文字を削除」 → Ctrl+H ※3 このキー設定にはマクロが必要。後で説明する。

なぜこんな作業が必要かというと、Word for MacがMac標準のキーアサインを無視しているから。Word以外のワープロ、たとえばPagesやLibreOffice、そしてテキスト入力を受け付けるMac上のオブジェクトのほとんどすべてがMac標準のキーアサインに従っているので、上記のショートカットキーはmac OS上では共通に使えると思ってよい。しかし、MS製品だけは例外になってしまっている。

ExcelとかPowerPointなどは、しょせん長文執筆のためのアプリではないから我慢もできるが、何万字も書くためのアプリで、つまりキーボードを死ぬほど打たなければならないアプリで、これはきつい。だから私にとって、以上の作業は必須のもの。

まあ、Windowsのキーアサインと合わせるためにしょうがないのはわかるが、Macでは⌘キーがCtrlキーの代わりとなる、ということでユーザーに納得してもらって、「Ctrl」系のショートカットは削除してくれてもいいんではないだろうか……。

※1 Google日本語入力のユーザーで、「キー設定の選択」を「ATOK」にしていると、「Ctrl+P」による「全角かな変換」が使える。たとえば、「かな」を「kana」に変換できるが、Word for MacでCtrl+Pを「カーソルを1行上に移動」に設定していると衝突してしまう。やむを得ず、「Ctrl+Shift+P」を「カーソルを1行上に移動」に設定して回避している。MS社とGoogle社の両方に要望を送りずみ。他の日本語変換システムでは問題なく共存できているので、おそらくはGoogleの問題。

それと標準で「Ctrl+P」は「ファイル印刷」にアサインされているので、タイミングによってはこちらが優先になってしまう。「ファイル印刷」は「⌘+P」でもできるので、「Ctrl+P」は「ファイル印刷」からは外しておいた方がいい。下記のようにする。

※2 Windows版で使っていない組み合わせだからか、ここだけはmacOS標準のキーがそのまま使える。

※3 Ctrl+Hの設定は次のようにする。まず、マクロを登録する。
「ツール」→「マクロ」→「Visual Basic Editor」を選択して、マクロの登録画面を開く。

つぎに、Normal.dotm(標準のテンプレート)のThisDocumentに、マクロを登録する。

コードは下記。打ち込んだら単にウィンドウを閉じればいい。

Sub BkSpPrc()    'Ctrl + H    Selection.TypeBackspaceEnd Sub

これで、「BkSpPrc」という名前でマクロが登録できた。次にこのマクロを「ショートカットキーの割り当て」から呼び出す。「分類」から「マクロ」を選ぶと、「BkSpPrc」が表示されるので、その状態で、新しいショートカットキーとして「control+H」を登録する。

ふう。めんどくさ。

この他、ATOKの「Ctrl+I」(全角カナ)がイタリックと衝突していたりする問題もあるが「Ctrl+P」と同じく単に設定を削除すれば解決する。

あ! Ctrl+K(末尾まで削除)を忘れてた。。。

参考:下記のサイトを参考にさせていただきました。というか、コードはそのまま拝借しました。ありがとうございますm(_ _)m

【2017/4/24追記】

コメントいただいたので、Ctrl+K(現在の位置より後、行末まで削除)の設定の仕方について追記する。

まず、VBAを開き、下記のコードを入力。

Sub KillLine()
' カーソル以降の現在行をカット
Selection.EndKey Unit:=wdLine, Extend:=wdExtend
Selection.Cut
End Sub

次に、「ショートカットキーの割り当て」の画面から、「マクロ」を選び、以下のように設定する。

これで「Ctrl+K」で末尾まで削除できるようになった。
(こちらのコードはこちらのサイトから拝借させていただきました)

【2017/10/25追記】

最近のアップデートで、ショートカットの設定の方法が刷新されたようで、既存のショートカット設定はすべて消去されてしまいました。。。

●変更点

  • コマンド名がWindowsと同様、英語風のものに戻った

今から設定しなおします……。

--

--