残業を減らす!Officeテクニック

またつまらぬモノを押してしまった…… Excelでよく間違える[F1]キーの無効化方法

[F1]キーでヘルプを起動させない定番のワザ

 Excelの作業中、[F2]キーでセルの編集モードに切り替えようとして、[F1]キーを押したことがありますよね? そして、無駄にヘルプが起動してイライラしたはずです。これはExcelユーザーのほぼ全員に同意していただけるのではないでしょうか。[F2]キー以外にも、[Esc]キーのつもりでヘルプ起動、[半角/全角]キーのつもりでヘルプ起動と、ミスタイプにもいろいろなバリエーションがあります。

 Excelユーザーに忌み嫌われる[F1]キーですが、無効化できることをご存じですか? コピー&ペーストで完了するお手軽な方法です。今回は[F1]キー無効化の仕組みとコピー&ペースト用のコードを紹介します。5分後には[F1]キーの悩みから解放されるはずです。

[F2][Esc][半角/全角]など、Excelでよく使うキーに近接する[F1]キー。ほぼ全員がミスタイプしたことがあるはず

[個人用マクロブック]を生成する

 Excelでマクロを記録する場合、「マクロ有効ブック(.xlms)」としてファイルを保存し、ファイルに埋め込まれたマクロを実行して利用するのが一般的です。対して[個人用マクロブック]は、Excelの起動時にバックグラウンドで処理するマクロを記録するためのものです。

 例えば、Excelを起動したらセルA1をアクティブにする、好みの表示倍率に設定するなど、個々のファイルに依存せずに自分のパソコンでExcelを起動した時に処理する内容を記述できるブックです。普通にExcelを利用していて目にすることはないでしょう。[個人用マクロブック]を利用したことがあれば
「C:¥Users¥(ユーザー名)¥AppData¥Roaming¥Microsoft¥Excel¥XLSTART」に保存されています。

 ディレクトリを意識する必要はありませんが、以下の操作によって、Excel起動時の処理を記述できるようになります。今回は[F1]キーを無効化するコード(マクロ)を登録します。

 なお、マクロは[表示]タブにある[マクロ]-[マクロの記録]から記録可能ですが、[Excelのオプション]から[開発]タブを表示しておくことをおすすめします。

[ファイル]タブにある[オプション]をクリックして[Excelのオプション]を開く。[リボンのユーザー設定]画面を表示し、[開発]にチェックを付けておく
[開発]タブにある[マクロの記録]をクリックする
[マクロの記録]ダイアログボックスが表示される。マクロ名は任意で構わない。[個人用マクロブック]を選択して[OK]をクリックする
マクロの記録が開始されるが、何も操作する必要はない。[開発]タブに表示されている[記録終了]をクリックする

[F1]キー無効化のコードをコピー&ペーストする

 以上の操作で[個人用マクロブック]が生成されました。何も操作せずにマクロの記録を終了したので、処理は何も記録されていませんが、「PERSONAL.XLSB」のモジュールを表示することが目的です。

 以下のコードをコピー&ペーストして、VBAの画面で保存、Excelを再起動すれば[F1]キーが無効になります。

Sub auto_open()
Application.OnKey "{F1}", ""
End Sub

 「Sub auto_open()」は「Excel起動時に自動的に実行される処理」の決まり文句です。「Application.OnKey "{F1}"」は「[F1]キーが押された時」の意味。続く「""」は、空の処理、つまり「何もしない」という指示です。

[開発]タブにある[Visual Basic]をクリックする
VBAの画面が表示され、「PERSONAL.XLSB」のモジュールのウィンドウが表示される。もし表示されない場合は、「PERSONAL.XLSB」の「Module 1」をダブルクリックする。上記のコードをコピー&ペーストして、[上書き保存]をクリックする。VBAの画面は閉じて構わない
Excelの画面に切り替わる。いったん閉じて、Excelを起動すると[F1]キーが無効化されている

 上記の操作で[F1]キーは無効化されました。[F1]キーを押して、何も起きないことを確認してみてください。なお、[F1]キーを押した時に[F2]キーと同じ処理(セルの編集モードの切り替え)を指示することも可能です。以下のコードを参照してください。

Sub auto_open()
Application.OnKey "{F1}", "on_f2"
End Sub

Sub on_f2()
SendKeys ("{F2}")
End Sub

 先ほどの「""」の間に任意の処理名(ここでは「on_f2」)を指定します。「End Sub」の下に新しい処理(on_f2)を記述します。「[F1]キーが押された時、処理(on_f2)を呼び出す」という仕掛けです。

 追加した処理(on_f2)には「SendKeys ("{F2}")」とあります。これで[F2]キーの機能を呼び出せます。[F1]キーを押した時、[F2]キーが押されたことにするわけです。好みで使ってください。

「ヘルプ」が恋しいときは?

 以上で[F1]キーからヘルプを呼び出せなくなったのですが、やはりヘルプを参照したいという時は、機能を検索するといいでしょう。

Excelの画面上部の検索欄に「ヘルプ」と入力して、検索候補に表示された[ヘルプ]をクリックする

 また、[F1]の無効化をやめたい時は、VBAの画面を表示して「PERSONAL.XLSB」のモジュールにコピー&ペーストしたコードを消して、上書き保存してください。

VBAの画面を表示して「PERSONAL.XLSB」のモジュールを表示する。コピー&ペーストしたコードを消して、上書き保存する