Отключение всех функциональных клавиш, кроме одной (Microsoft Excel)
Когда кто-то использует книгу Лоренцо, он хочет, чтобы пользователю была доступна только клавиша F2. Он интересуется, есть ли способ отключить все функциональные клавиши в Excel, кроме клавиши F2?
Способ есть, но делать это нужно с помощью макросов. В частности, вы захотите использовать метод OnKey объекта Application. Этот код отключит все функциональные клавиши, за исключением 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 — ваш источник экономичного обучения Microsoft Excel.
Этот совет (13523) применим к Microsoft Excel 2007, 2010, 2013, 2016, 2019 и Excel в Office 365.