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

いぬがすき
Feb 12, 2017 · 7 min read

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と同様、英語風のものに戻った

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

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade