和風スパゲティのレシピ

日本語でコーディングするExcelVBA

F1ヘルプを無効化しF2など別機能を割り当てる

憎きF1「ヘルプ」を無効化し、別の機能で上書きするマクロを紹介します。

設置場所

今回のマクロはExcelを起動したタイミングで自動実行されてほしいため、
Excel起動時に自動で開かれる「個人用マクロブック」に搭載するのがおすすめです。


個人用マクロブックの作り方については以下の記事を参照ください。


手っ取り早く用意したい場合は、

  1. 「開発タブ」⇒「マクロの記録」を実行
  2. マクロの保存先に「個人用マクロ ブック」を選択。
  3. 「OK」を押し、即座に「■:記録終了」にてマクロ記録を停止
  4. この時作成された「PERSONAL.XLSB」が個人用マクロブック


以上の手順で用意することができます。

今回のマクロをこのブックに搭載しておけば、
以降はExcelを開くと自動でF1キーが無効化されるようになります。

ソースコード

個人用マクロブック(使用しない場合は設定したいマクロブック)の中にある、
「ThisWorkbook」モジュール内に以下のコードを搭載してください。


なお、割り当てる機能ですが、以下の4パターンを用意してみました。

  1. F1キーを単に無効化する(何も起きなくなる)
  2. F2キー「セルを編集モードにする」を割り当てる
  3. 「セルの書式設定」ダイアログを開く
  4. 自作のマクロを割り当てる

お好きなものを実装してください。
 

F1キーを単に無効化する(何も起きなくなる)

単に無効化するだけでよい場合は、
こちらのコードを「Thisworkbook」内に記載してください。

Private Sub Workbook_Open()
    Application.OnKey "{F1}"
End Sub

 

F1キーにF2キー(セルを編集モードに)を割り当てる

続いてF1キーをF2キーにしてしまう設定です。

F2キーの誤押下でF1キーを押してしまうことが多い方は、
以下のコードを「Thisworkbook」内に記載してください。

Private Sub Workbook_Open()
    Application.OnKey "{F1}", "Thisworkbook.F2キーを送信する"
End Sub

Private Sub F2キーを送信する()
    CreateObject("WScript.Shell").SendKeys "{F2}"
End Sub

 

F1キーに「セルの書式設定」ダイアログを設定する

続いてF1キーに「セルの書式設定」ダイアログを設定する方法です。

F2:セルの編集モードの隣にあると便利という点と、
私はCtrl+1と間違ってF1を押してしまうため、この対策も兼ねています。

この設定を採用する場合は、
以下のコードを「Thisworkbook」内に記載してください。

Private Sub Workbook_Open()
    Application.OnKey "{F1}", "ThisWorkbook.セルの書式設定ダイアログを開く"
End Sub

Private Sub セルの書式設定ダイアログを開く()
    Application.CommandBars.ExecuteMso "FormatCellsDialog"
End Sub

 

自作のマクロを割り当てる

最後に自作マクロを割り当てる方法です。

上記コードと全く変わらない方法で実装できます。

Private Sub Workbook_Open()
    Application.OnKey "{F1}", "Thisworkbook.自作マクロ名"
End Sub

Private Sub 自作マクロ名()
    ' ここに実行したい処理を記述
End Sub


以上でF1ヘルプを無効化し別の機能を割り当てるマクロの解説を終わります。

意図せずヘルプが出て困った経験がある方は、
是非とも活用してみてください。