※元ネタ(Office2013版)はコチラ
最近会社のOfficeがO365に一新されたので、忌々しきF1キーの呪いが復活しました。
ということで再びF1無効化を行っていきたいと思います。
F1キーを無効化する方法
F1キーを無効化する方法は大きく分けて4つあります。
- F1キーを物理的に排除する
- キーボードの無効化ソフトを入れる
- レジストリを書き換える
- マクロを使用する
①は正直ネタ枠ですし、②・③は会社のセキュリティポリシー等を考慮すると、④よりも面倒になる可能性が高いです。
①~④のいずれも実現できること同じなので、私は一番簡単でハードルの低い④「マクロを使用する方法」をお勧めします。
ということでここからは、マクロでF1キーを無効化する方法をご紹介していきます。
(その中でも個人的に最適解だと思っている設定方法をご紹介します)
F1キー無効化マクロの設定方法
①Excelの設定
マクロの設定に開発タブを使用するため、まずはExcelで開発タブの設定を変更します。
※設定済みの場合はこの節はスキップしてください。
まずExcelの設定を変更するため、オプションを開いてください。
次にオプションの「リボンのユーザー設定」項目を開き、「メインタブ」の「開発」にチェックを入れてOKをクリックします。
これで、Excelのリボンに開発タブが表示されるようになっているはずです。
②マクロの設定
次は、F1キー無効化マクロを設定していきます。
まずはベースとなるマクロを作成するので、開発タブの「マクロの記録」をクリックしてください。
「マクロの記録」をクリックすると、以下のポップアップが表示されます。
この時、「マクロ名」は何でもいいですが、「マクロの保存先」は必ず個人用マクロ ブックを選択するようにしてください。
OKをクリックするとマクロの記録が開始されますが、これはベースにするだけなので何もせずに記録終了してください。
(何かしても後で消すので特に問題ないです)
これで、マクロのベースが作成されたのでVBAエディタを開いて確認します。
上で設定したマクロ名のマクロが以下のファイルに作成されているはずです。
VBAProject (PERSONAL.XLSB)
→標準モジュール
→Module1
あとは、無効化マクロを書き込むだけです。
上で作成されたマクロを削除して、以下の無効化マクロを書き込んでください。
Option Explicit
Sub auto_open()
Application.OnKey "{F1}", "use_f2"
End Sub
Sub use_f2()
SendKeys ("{F2}")
End Sub
※名前の違い等で動作が変わるので丸っとコピペすることをお勧めします。
完成形としては、以下のようになるはずです。
これでF1ヘルプが無効化されます。
(場合によってはExcelの再起動が必要かもしれません)
終わりに(どの辺が最適解なのかの話)
コードを見てお分かりの方も多いかと思いますが、このマクロはF1キーを押したときにF2キー相当の動作をしてくれるマクロなのです。
F1キーを無効化しているだけだと、F1キーを誤タイプした際に、「あれ反応せんな?あ、F1キー押しとったわww」という無駄な思考が発生してしまいますが、このマクロを組むことでそれすらも防ぐことができるのです。
ということで今回はF1無効化の最適解O365編でした。
これでF1ヘルプ被害者が少しでも減れば幸いです。
以上
コメント
この様な情報、とても助かります。
おかげで、呪いが解けました♪
リソースが不足気味の時に誤ってF1を押すと、Excelの挙動が一気におかしくなることもありますので、これで一安心ですねw
「絶対に使わない」重いヘルプがF1に割り当てられている理由が不明です・・・。
コピペしたのに Numl-Lock OFF になる・・・なぜ~???
別端末でも試してみましたが私の環境ではならないですね…
あり得るとしたらキー配置の違い等だと思いますが、F1、F2のキー配置が違うのは見たことが無いので謎です。
functionキーが特殊(他のキーと一体型)になっているタイプのキーボードとかでしょうか…?
いつもこのマクロに助けられてます。
一言お礼を言いたくて。ありがとう。