powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Назначение комбинаций клавиш. Как назначить макрос клавише Print Screen
9 сообщений из 9, страница 1 из 1
Назначение комбинаций клавиш. Как назначить макрос клавише Print Screen
    #37605023
DMK67
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нашел на форуме отличный макрос для назначения макросов событиям нажатия сочетаний клавиш

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Private Sub c_Hot_Keys()
' назначение комбинаций клавиш
With Application
    ' обозначение клавиш: + = Shift; % = Alt; ^ = Ctrl
     
    ' комбинация с клавишей Ctrl
    .OnKey "^{F1}", "myMacros_1"

    ' комбинация с клавишами Ctrl и Shift
     .OnKey "^+{a}", "myMacros_2"
    
    ' комбинация с клавишей Shift
    .OnKey "+{F1}", "myMacros_3"
     
    ' функциональные клавиши
    .OnKey "{F12}", "myMacros_4"

End With
End Sub




Хочется узнать как обозначить в VBA клавиши:

Print Screen

Esc

Tab

Windows

Delete

End
...
Рейтинг: 0 / 0
Назначение комбинаций клавиш. Как назначить макрос клавише Print Screen
    #37605048
KL (XL)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DMK67,

А в Справку заглянуть? (выбираем OnKey и жмем F1)

"{ESCAPE}" или "{ESC}" - Esc

"{TAB}" - Tab

"{DELETE}" или "{DEL}" - Delete

"{END}" - End

Для Print Screen и Windows нужно искать в сети, но, думаю, через .OnKey будет проблематично.
...
Рейтинг: 0 / 0
Назначение комбинаций клавиш. Как назначить макрос клавише Print Screen
    #37605063
DMK67
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Enter -"~"
...
Рейтинг: 0 / 0
Назначение комбинаций клавиш. Как назначить макрос клавише Print Screen
    #37605204
DMK67
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
233.
234.
235.
236.
237.
238.
239.
240.
241.
242.
243.
244.
245.
246.
247.
248.
249.
250.
251.
252.
253.
254.
255.
256.
257.
258.
259.
260.
261.
262.
263.
264.
265.
266.
267.
268.
269.
270.
271.
272.
273.
274.
275.
276.
277.
278.
279.
280.
281.
282.
283.
284.
285.
286.
287.
288.
289.
290.
291.
292.
293.
294.
295.
296.
297.
298.
299.
300.
301.
302.
303.
304.
305.
'Вариант I. Разместите в любом стандартном модуле нужной рабочей книги :
 
Sub Запретить_клавиши()
 Application.OnKey Key:="+^%{F1}", Procedure:=""
 ' Блокировка сочетания клавиш SHIFT + CTRL + ALT + F1
 Application.OnKey Key:="^;", Procedure:=""
 ' Сочетание клавиш CTRL + ;
 Application.OnKey Key:="^:", Procedure:=""
 ' Сочетание клавиш CTRL + :
 Application.OnKey Key:="^0", Procedure:=""
 ' Сочетание клавиш CTRL + 0
 Application.OnKey Key:="^1", Procedure:=""
 ' Сочетание клавиш CTRL + 1
 Application.OnKey Key:="^6", Procedure:=""
 ' Сочетание клавиш CTRL + 6
 Application.OnKey Key:="^7", Procedure:=""
 ' Сочетание клавиш CTRL + 7
 Application.OnKey Key:="^8", Procedure:=""
 ' Сочетание клавиш CTRL + 8
 Application.OnKey Key:="^9", Procedure:=""
 ' Сочетание клавиш CTRL + 9
 Application.OnKey Key:="^a", Procedure:=""
 ' Сочетание клавиш CTRL + A
 Application.OnKey Key:="^c", Procedure:=""
 ' Сочетание клавиш CTRL + C
 Application.OnKey Key:="^d", Procedure:=""
 ' Сочетание клавиш CTRL + D
 Application.OnKey Key:="^f", Procedure:=""
 ' Сочетание клавиш CTRL + F
 Application.OnKey Key:="^h", Procedure:=""
 ' Сочетание клавиш CTRL + H
 Application.OnKey Key:="^k", Procedure:=""
 ' Сочетание клавиш CTRL + K
 Application.OnKey Key:="^n", Procedure:=""
 ' Сочетание клавиш CTRL + n
 Application.OnKey Key:="^o", Procedure:=""
 ' Сочетание клавиш CTRL + O
 Application.OnKey Key:="^p", Procedure:=""
 ' Сочетание клавиш CTRL + p
 Application.OnKey Key:="^r", Procedure:=""
 ' Сочетание клавиш CTRL + R
 Application.OnKey Key:="^s", Procedure:=""
 ' Сочетание клавиш CTRL + S
 
 Application.OnKey Key:="^v", Procedure:=""
 ' Сочетание клавиш CTRL + V
 Application.OnKey Key:="^x", Procedure:=""
 ' Сочетание клавиш CTRL + X
 Application.OnKey Key:="^z", Procedure:=""
 ' Сочетание клавиш CTRL + Z
 Application.OnKey Key:="^g", Procedure:=""
 ' Сочетание клавиш CTRL + G
 
 Application.OnKey Key:="%{F1}", Procedure:=""
 ' Блокировка сочетания клавиш ALT + F1
 Application.OnKey Key:="%{F2}", Procedure:=""
 ' Блокировка сочетания клавиш ALT + F2
 Application.OnKey Key:="%{F3}", Procedure:=""
 ' Блокировка сочетания клавиш ALT + F3
 Application.OnKey Key:="%{F4}", Procedure:=""
 ' Блокировка сочетания клавиш ALT + F4
 Application.OnKey Key:="%{F5}", Procedure:=""
 ' Блокировка сочетания клавиш ALT + F5
 Application.OnKey Key:="%{F6}", Procedure:=""
 ' Блокировка сочетания клавиш ALT + F6
 Application.OnKey Key:="%{F7}", Procedure:=""
 ' Блокировка сочетания клавиш ALT + F7
 Application.OnKey Key:="%{F8}", Procedure:=""
 ' Блокировка сочетания клавиш ALT + F8
 Application.OnKey Key:="%{F9}", Procedure:=""
 ' Блокировка сочетания клавиш ALT + F9
 Application.OnKey Key:="%{F10}", Procedure:=""
 ' Блокировка сочетания клавиш ALT + F10
 Application.OnKey Key:="%{F11}", Procedure:=""
 ' Блокировка сочетания клавиш ALT + F11
 Application.OnKey Key:="%{F12}", Procedure:=""
 ' Блокировка сочетания клавиш ALT + F12
 
 
 Application.OnKey Key:="{F1}", Procedure:=""
 ' Блокировка сочетания клавиш F1
 Application.OnKey Key:="{F2}", Procedure:=""
 ' Блокировка сочетания клавиш F2
 Application.OnKey Key:="{F3}", Procedure:=""
 ' Блокировка сочетания клавиш F3
 Application.OnKey Key:="{F4}", Procedure:=""
 ' Блокировка сочетания клавиш F4
 Application.OnKey Key:="{F5}", Procedure:=""
 ' Блокировка сочетания клавиш F5
 Application.OnKey Key:="{F6}", Procedure:=""
 ' Блокировка сочетания клавиш F6
 Application.OnKey Key:="{F7}", Procedure:=""
 ' Блокировка сочетания клавиш F7
 Application.OnKey Key:="{F8}", Procedure:=""
 ' Блокировка сочетания клавиш F8
 Application.OnKey Key:="{F9}", Procedure:=""
 ' Блокировка сочетания клавиш F9
 Application.OnKey Key:="{F10}", Procedure:=""
 ' Блокировка сочетания клавиш F10
 Application.OnKey Key:="{F11}", Procedure:=""
 ' Блокировка сочетания клавиш F11
 Application.OnKey Key:="{F12}", Procedure:=""
 ' Блокировка сочетания клавиш F12
 
 
 Application.OnKey Key:="^{F1}", Procedure:=""
 ' Блокировка сочетания клавиш CTRL + F1
 Application.OnKey Key:="^{F2}", Procedure:=""
 ' Блокировка сочетания клавиш CTRL + F2
 Application.OnKey Key:="^{F3}", Procedure:=""
 ' Блокировка сочетания клавиш CTRL + F3
 Application.OnKey Key:="^{F4}", Procedure:=""
 ' Блокировка сочетания клавиш CTRL + F4
 Application.OnKey Key:="^{F5}", Procedure:=""
 ' Блокировка сочетания клавиш CTRL + F5
 Application.OnKey Key:="^{F6}", Procedure:=""
 ' Блокировка сочетания клавиш CTRL + F6
 Application.OnKey Key:="^{F7}", Procedure:=""
 ' Блокировка сочетания клавиш CTRL + F7
 Application.OnKey Key:="^{F8}", Procedure:=""
 ' Блокировка сочетания клавиш CTRL + F8
 Application.OnKey Key:="^{F9}", Procedure:=""
 ' Блокировка сочетания клавиш CTRL + F9
 Application.OnKey Key:="^{F10}", Procedure:=""
 ' Блокировка сочетания клавиш CTRL + F10
 Application.OnKey Key:="^{F11}", Procedure:=""
 ' Блокировка сочетания клавиш CTRL + F11
 Application.OnKey Key:="^{F12}", Procedure:=""
 ' Блокировка сочетания клавиш CTRL + F12
 
 
 
 Application.OnKey Key:="+{F1}", Procedure:=""
 ' Блокировка сочетания клавиш SHIFT + F1
 Application.OnKey Key:="+{F2}", Procedure:=""
 ' Блокировка сочетания клавиш SHIFT + F2
 Application.OnKey Key:="+{F3}", Procedure:=""
 ' Блокировка сочетания клавиш SHIFT + F3
 Application.OnKey Key:="+{F4}", Procedure:=""
 ' Блокировка сочетания клавиш SHIFT + F4
 Application.OnKey Key:="+{F5}", Procedure:=""
 ' Блокировка сочетания клавиш SHIFT + F5
 Application.OnKey Key:="+{F6}", Procedure:=""
 ' Блокировка сочетания клавиш SHIFT + F6
 Application.OnKey Key:="+{F7}", Procedure:=""
 ' Блокировка сочетания клавиш SHIFT + F7
 Application.OnKey Key:="+{F8}", Procedure:=""
 ' Блокировка сочетания клавиш SHIFT + F8
 Application.OnKey Key:="+{F9}", Procedure:=""
 ' Блокировка сочетания клавиш SHIFT + F9
 Application.OnKey Key:="+{F10}", Procedure:=""
 ' Блокировка сочетания клавиш SHIFT + F10
 Application.OnKey Key:="+{F11}", Procedure:=""
 ' Блокировка сочетания клавиш SHIFT + F11
 Application.OnKey Key:="+{F12}", Procedure:=""
 ' Блокировка сочетания клавиш SHIFT + F12
 
 Application.OnKey Key:="+^{F1}", Procedure:=""
 ' Блокировка сочетания клавиш SHIFT + CTRL + F1
 Application.OnKey Key:="+^{F2}", Procedure:=""
 ' Блокировка сочетания клавиш SHIFT + CTRL + F2
 Application.OnKey Key:="+^{F3}", Procedure:=""
 ' Блокировка сочетания клавиш SHIFT + CTRL + F3
 Application.OnKey Key:="+^{F4}", Procedure:=""
 ' Блокировка сочетания клавиш SHIFT + CTRL + F4
 Application.OnKey Key:="+^{F5}", Procedure:=""
 ' Блокировка сочетания клавиш SHIFT + CTRL + F5
 Application.OnKey Key:="+^{F6}", Procedure:=""
 ' Блокировка сочетания клавиш SHIFT + CTRL + F6
 Application.OnKey Key:="+^{F7}", Procedure:=""
 ' Блокировка сочетания клавиш SHIFT + CTRL + F7
 Application.OnKey Key:="+^{F8}", Procedure:=""
 ' Блокировка сочетания клавиш SHIFT + CTRL + F8
 Application.OnKey Key:="+^{F9}", Procedure:=""
 ' Блокировка сочетания клавиш SHIFT + CTRL + F9
 Application.OnKey Key:="+^{F10}", Procedure:=""
 ' Блокировка сочетания клавиш SHIFT + CTRL + F10
 Application.OnKey Key:="+^{F11}", Procedure:=""
 ' Блокировка сочетания клавиш SHIFT + CTRL + F11
 Application.OnKey Key:="+^{F12}", Procedure:=""
 ' Блокировка сочетания клавиш SHIFT + CTRL + F12
 
Application.OnKey Key:="+^{F12}", Procedure:=""
 ' Блокировка сочетания клавиш SHIFT + CTRL + F12
 Application.OnKey Key:="+%{F9}", Procedure:=""
 ' Блокировка сочетания клавиш SHIFT + ALT + F9
 Application.OnKey Key:="+^{F6}", Procedure:=""
 ' Блокировка сочетания клавиш SHIFT + CTRL + F6
 Application.OnKey Key:="+^{F3}", Procedure:=""
 ' Блокировка сочетания клавиш SHIFT + CTRL + F3
 Application.OnKey Key:="+%{F2}", Procedure:=""
 ' Блокировка сочетания клавиш SHIFT + ALT + F2
 Application.OnKey Key:="+%{F1}", Procedure:=""
 ' Блокировка сочетания клавиш SHIFT + ALT + F1
End Sub

'Вернуть всё обратно можно выполнив единственную инструкцию :
Sub Вернуть_назад()
Application.OnKey Key:="+^%{F1}"
Application.OnKey Key:="^;"
Application.OnKey Key:="^:"
Application.OnKey Key:="^0"
Application.OnKey Key:="^1"
Application.OnKey Key:="^6"
Application.OnKey Key:="^7"
Application.OnKey Key:="^8"
Application.OnKey Key:="^9"
Application.OnKey Key:="^a"
Application.OnKey Key:="^c"
Application.OnKey Key:="^d"
Application.OnKey Key:="^f"
Application.OnKey Key:="^h"
Application.OnKey Key:="^k"
Application.OnKey Key:="^o"
Application.OnKey Key:="^p"
Application.OnKey Key:="^r"
Application.OnKey Key:="^s"
Application.OnKey Key:="^v"
Application.OnKey Key:="^x"
Application.OnKey Key:="^z"
Application.OnKey Key:="^g"
 
 
 
 
 
 
 
 
 
Application.OnKey Key:="%{F1}"
Application.OnKey Key:="%{F2}"
Application.OnKey Key:="%{F3}"
Application.OnKey Key:="%{F4}"
Application.OnKey Key:="%{F5}"
Application.OnKey Key:="%{F6}"
Application.OnKey Key:="%{F7}"
Application.OnKey Key:="%{F8}"
Application.OnKey Key:="%{F9}"
Application.OnKey Key:="%{F10}"
Application.OnKey Key:="%{F11}"
Application.OnKey Key:="%{F12}"
 
Application.OnKey Key:="{F1}"
Application.OnKey Key:="{F2}"
Application.OnKey Key:="{F3}"
Application.OnKey Key:="{F4}"
Application.OnKey Key:="{F5}"
 Application.OnKey Key:="{F6}"
 Application.OnKey Key:="{F7}"
 Application.OnKey Key:="{F8}"
 Application.OnKey Key:="{F9}"
 Application.OnKey Key:="{F10}"
 Application.OnKey Key:="{F11}"
 Application.OnKey Key:="{F12}"
 
 
 Application.OnKey Key:="^{F1}"
 Application.OnKey Key:="^{F2}"
 Application.OnKey Key:="^{F3}"
 Application.OnKey Key:="^{F4}"
 Application.OnKey Key:="^{F5}"
 Application.OnKey Key:="^{F6}"
 Application.OnKey Key:="^{F7}"
 Application.OnKey Key:="^{F8}"
 Application.OnKey Key:="^{F9}"
 Application.OnKey Key:="^{F10}"
 Application.OnKey Key:="^{F11}"
 Application.OnKey Key:="^{F12}"
 
 
 
 Application.OnKey Key:="+{F1}"
 Application.OnKey Key:="+{F2}"
 Application.OnKey Key:="+{F3}"
 Application.OnKey Key:="+{F4}"
 Application.OnKey Key:="+{F5}"
 Application.OnKey Key:="+{F6}"
 Application.OnKey Key:="+{F7}"
 Application.OnKey Key:="+{F8}"
 Application.OnKey Key:="+{F9}"
 Application.OnKey Key:="+{F10}"
 Application.OnKey Key:="+{F11}"
 Application.OnKey Key:="+{F12}"
 
 Application.OnKey Key:="+^{F1}"
 Application.OnKey Key:="+^{F2}"
 Application.OnKey Key:="+^{F3}"
 Application.OnKey Key:="+^{F4}"
 Application.OnKey Key:="+^{F5}"
 Application.OnKey Key:="+^{F6}"
 Application.OnKey Key:="+^{F7}"
 Application.OnKey Key:="+^{F8}"
 Application.OnKey Key:="+^{F9}"
 Application.OnKey Key:="+^{F10}"
 Application.OnKey Key:="+^{F11}"
 Application.OnKey Key:="+^{F12}"
 
 Application.OnKey Key:="+^{F12}"
 Application.OnKey Key:="+%{F9}"
 Application.OnKey Key:="+^{F6}"
 Application.OnKey Key:="+^{F3}"
 Application.OnKey Key:="+%{F2}"
 Application.OnKey Key:="+%{F1}"
End Sub





А вот следующая конструкция:

Код: vbnet
1.
2.
 Application.OnKey Key:="^%{del}", Procedure:=""
 ' Блокировка сочетания клавиш CTRL + ALT + DEL



не работает
...
Рейтинг: 0 / 0
Назначение комбинаций клавиш. Как назначить макрос клавише Print Screen
    #37605450
ZVI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DMK67,
Вы еще. как минимум, про Alt-Tab забыли. И про мышку, наверное.
Не все сочетания нажатий клавиш кодируются через OnKey.
Системные можно заблокировать только с помощью API, использую сабклассинг.

Но лучше бы Вы пояснили зачем всё это.
Потому что, например, при редактировании ячейки в Excel все OnKey игнорируются и работают Ctrl-C, Ctrl-C и проч.
...
Рейтинг: 0 / 0
Назначение комбинаций клавиш. Как назначить макрос клавише Print Screen
    #37608116
DMK67
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Об этом то я и не подумал....

А вот для UserForm отключить Print Screen не удалось... но зато удалось отследить отпускание клавиши и посадить на это событие очистку буфера обмена

Код: vbnet
1.
2.
3.
4.
5.
Private Sub CommandButton001_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = vbKeySnapshot Then
OCHISTKA_BOOFERA_OBMENA
End If
End Sub



Проблема состоит только в том что этот код надо повторить для любого контрола имеющего свойство Focus и находящейся на данной форме... Т.е при наличии 100 кнопок и чекбоксов на форме...легче застрелиться...

Никто не пробовал на форме отследить кнопку Windows?
...
Рейтинг: 0 / 0
Назначение комбинаций клавиш. Как назначить макрос клавише Print Screen
    #37608146
KL (XL)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DMK67Проблема состоит только в том что этот код надо повторить для любого контрола имеющего свойство Focus и находящейся на данной форме... Т.е при наличии 100 кнопок и чекбоксов на форме...легче застрелиться...

Для этого существуют классы. Вот простенький пример воплощения: http://spreadsheetpage.com/index.php/site/tip/handle_multiple_userform_buttons_with_one_subroutine/
...
Рейтинг: 0 / 0
Назначение комбинаций клавиш. Как назначить макрос клавише Print Screen
    #37608348
DMK67
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Видно все таки придется лезть в учебники ... пришло время учить классы
...
Рейтинг: 0 / 0
Назначение комбинаций клавиш. Как назначить макрос клавише Print Screen
    #37608446
KL (XL)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DMK67,

Если есть желание, то - да. А так, там все уже готово и файл для скачивания есть. Нужно только поменять событие, тип контролов, ну и процедуру вызываемую обработчиком :)
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Назначение комбинаций клавиш. Как назначить макрос клавише Print Screen
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]