Lorenzoのワークブックを使用している場合、ユーザーはF2キーのみにアクセスできるようにしたいと考えています。彼は、F2キーを除いて、Excelのすべてのファンクションキーを無効にする方法があるかどうか疑問に思います。

方法はありますが、マクロを使用して実行する必要があります。具体的には、ApplicationオブジェクトのOnKeyメソッドを使用する必要があります。このコードは、F2を除くすべてのファンクションキーを無効にします:

Private Sub Workbook_Open()

Application.OnKey "{F1}", ""

Application.OnKey "{F3}", ""

Application.OnKey "{F4}", ""

Application.OnKey "{F5}", ""

Application.OnKey "{F6}", ""

Application.OnKey "{F7}", ""

Application.OnKey "{F8}", ""

Application.OnKey "{F9}", ""

Application.OnKey "{F10}", ""

Application.OnKey "{F11}", ""

Application.OnKey "{F12}", ""

End Sub

マクロはThisWorkbookモジュールに追加する必要があり、ワークブックを開くと自動的に実行されます。

必要に応じて、マクロを少し短くすることができます:

Private Sub Workbook_Open()

Dim sTemp As String     Dim J As Integer

For J = 1 to 12         If J <> 2 Then             sTemp = "{F" & Trim(Str(J)) & "}"

Application.OnKey sTemp, ""

End If     Next J End Sub

また、ブックを閉じるときに、すべてのファンクションキーを再度有効にすることを確認する必要があります。このマクロも、ThisWorkbookモジュールに追加する必要があります:

Private Sub Workbook_BeforeClose(CANCEL As Boolean)

Application.OnKey "{F1}"

Application.OnKey "{F3}"

Application.OnKey "{F4}"

Application.OnKey "{F5}"

Application.OnKey "{F6}"

Application.OnKey "{F7}"

Application.OnKey "{F8}"

Application.OnKey "{F9}"

Application.OnKey "{F10}"

Application.OnKey "{F11}"

Application.OnKey "{F12}"

End Sub

同じコードの短いバージョンを使用することもできます:

Private Sub Workbook_BeforeClose(CANCEL As Boolean)

Dim sTemp As String     Dim J As Integer

For J = 1 to 12         If J <> 2 Then             sTemp = "{F" & Trim(Str(J)) & "}"

Application.OnKey sTemp         End If     Next J End Sub

_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(13523)は、Microsoft Excel 2007、2010、2013、2016、2019、およびOffice365のExcelに適用されます。