Нажатие клавиши в vba word

Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.

Страницы 1

Чтобы отправить ответ, вы должны войти или зарегистрироваться

Сообщений [ 1 ]

1 23.01.2015 09:50:47

  • Имитация нажатия комбинации клавиш в VBA Word
  • Alex_Gur
  • Модератор
  • Неактивен
  • Откуда: Москва
  • Зарегистрирован: 28.07.2011
  • Сообщений: 2,758
  • Поблагодарили: 492

Тема: Имитация нажатия комбинации клавиш в VBA Word

Имитация нажатия комбинации клавиш в VBA Word
(подробнее см. внешняя ссылка; http://wordexpert.ru/forum/viewtopic.ph … 400#p13400)

В VBA Word имеется возможность имитации нажатий клавиш.
Например, нажатие клавиш Alt+5:

Sub Alt_5()
    SendKeys «%{5}»
End Sub

% — в этом операторе обозначает Alt.

Обозначения клавиш в операторе SendKeys

Клавиша         —           Код
BACKSPACE —    {BACKSPACE}, {BS}, or{BKSP}
BREAK —    {BREAK}
CAPS LOCK —    {CAPSLOCK}
DEL или DELETE —    {DELETE} or{DEL}
СТРЕЛКА ВНИЗ —    {DOWN}
END —    {END}
ВВОД —    {ENTER} or ~
ESC —    {ESC}
HELP —    {HELP}
HOME —    {HOME}
INS или INSERT —    {INSERT} or {INS}
СТРЕЛКА ВЛЕВО —    {LEFT}
NUM LOCK —    {NUMLOCK}
PAGE DOWN —    {PGDN}
PAGE UP —    {PGUP}
PRINT SCREEN —    {PRTSC}
СТРЕЛКА ВПРАВО —    {RIGHT}
SCROLL LOCK —    {SCROLLLOCK}
TAB —    {TAB}
СТРЕЛКА ВВЕРХ —    {UP}
F1 —    {F1}
F2 —    {F2}
F3 —    {F3}
F4 —    {F4}
F5 —    {F5}
F6 —    {F6}
F7 —    {F7}
F8 —    {F8}
F9 —    {F9}
F10 —    {F10}
F11 —    {F11}
F12 —    {F12}

Чтобы указать сочетание клавиш с SHIFT, CTRL и ALT, добавьте перед кодом клавиши один или несколько следующих кодов:

Клавиша    Код
SHIFT —     +
CTRL —    ^
ALT —    %

Подробнее об имитации нажатий клавиш – см. внешняя ссылка или прилагаемый файл Оператор SendKeys.docx

Post’s attachments

Оператор SendKeys.docx 16.97 Кб, 10 скачиваний с 2015-01-23 

You don’t have the permssions to download the attachments of this post.

Удобной и приятной работы в Word!
Перевести спасибо на Яндекс кошелёк — 41001162202962; на WebMoney — R581830807057.

Сообщений [ 1 ]

Страницы 1

Чтобы отправить ответ, вы должны войти или зарегистрироваться

Похожие темы

  • Выделить все комбинации +7913ххххххх по начальным цифрам
  • Отключение горячих клавиш Word
  • Пересылка кода клавиш (из PowerPoint в Word)
  • Еще раз про сочетания клавиш
  • Перенос настроек горячих клавиш
  • Макрос для настройки стандартных «горячих клавиш»
  • Сочетание клавиш: переход на следующую страницу
  • Отключить назначения клавиш Ctrl и Alt в Office2010

Имитация нажатия комбинации клавиш в VBA Word

Различные проблемы, возникающие при написании или редактировании текстов в редакторе Ворд, можно решить несколькими способами. На портале о Microsoft Office Word вы узнаете про: настроит размер шрифта в word 2010.
Ворд – программа многозадачная и поливариантная. Но чтобы выбрать оптимальный способ и подходящие настройки, необходимо разобраться в приложении достаточно глубоко. Наш сайт о Microsoft Office Word даст ответ про: редактирование проверка орфографии автозамена автотекст.

Этим вопросам посвящен форум сайта Ворд Эксперт. Участники делятся друг с другом своими наработками и секретами, предлагают различные способы настроек, макросы и шаблоны для вордовских операций, как готовые, так и принципы создания. На портале о Microsoft Office Word вы узнаете про: как сохранять свой текст в pdf.

Все это описывается очень простым языком, в котором разберется любой пользователь. Кроме того, на форуме можно найти готовые решения, существует возможность создать заявку для решения вашей проблемы. Наш сайт о Microsoft Office Word даст ответ про: макрос для удаления гиперссыдлок.

Передает активному окну одно или несколько нажатий клавиш, как если бы они были нажаты на клавиатуре.

SendKeys string[, wait]

Параметры
string
Обязательный. Строковое выражение, указывающее набор нажатий клавиш, который следует передать.
wait
Необязательный. Значение типа Boolean, указывающее режим ожидания. Если этот аргумент имеет значение False (значение по умолчанию), управление возвращается вызывающей процедуре сразу после завершения передачи нажатий клавиш. Если этот аргумент имеет значение True, управление возвращается вызывающей процедуре только после завершения обработки переданных нажатий клавиш.

Замечания
Для описания нажатий клавиш используются коды, состоящие из одного или нескольких символов. В качестве кода клавиши, соответствующей печатному символу, используется сам символ. Например, нажатию клавиши string «A». Для описания нескольких нажатий клавиш следует последовательно включить в string коды каждой клавиши. Например, последовательности клавиш A, B и C соответствует «ABC».
Символы плюс (+), «крышка» (^), знак процентов (%), тильда (~) и круглые скобки ( ) имеют специальное значение для инструкции SendKeys. Чтобы указать передачу одного из этих символов, следует заключить его в фигурные скобки ({}). Например, знаку плюс соответствует код {+}. Квадратные скобки ([ ]) не имеют специального значения для инструкции SendKeys, однако, их также необходимо заключать в фигурные скобки, поскольку они могут иметь специальное значение для других приложений, например, при динамическом обмене данными (DDE). Фигурным скобкам соответствуют коды {{} и {}}.
Для описания нажатий клавиш, которые не отображаются на экране (например, ENTER или TAB) или вызывают выполнение определенных действий, следует использовать перечисленные ниже коды:

BACKSPACE	{BACKSPACE}, {BS} или {BKSP}
BREAK	{BREAK}
CAPS LOCK	{CAPSLOCK}
DEL или DELETE	{DELETE} или {DEL}
СТРЕЛКА ВНИЗ	{DOWN}
END	{END}
ENTER	{ENTER}или ~
ESC	{ESC}
HELP	{HELP}
HOME	{HOME}
INS или INSERT	{INSERT} или {INS}
СТРЕЛКА ВЛЕВО	{LEFT}
NUM LOCK	{NUMLOCK}
PAGE DOWN	{PGDN}
PAGE UP	{PGUP}
PRINT SCREEN	{PRTSC}
СТРЕЛКА ВПРАВО	{RIGHT}
SCROLL LOCK	{SCROLLLOCK}
TAB	{TAB}
СТРЕЛКА ВВЕРХ	{UP}
F1	{F1}
F2	{F2}
F3	{F3}
F4	{F4}
F5	{F5}
F6	{F6}
F7	{F7}
F8	{F8}
F9	{F9}
F10	{F10}
F11	{F11}
F12	{F12}
F13	{F13}
F14	{F14}
F15	{F15}
F16	{F16}

Для описания сочетания клавиши с клавишами SHIFT, CTRL или ALT следует указать один из перечисленных ниже кодов перед кодом обычной клавиши:

SHIFT	+
CTRL 	^
ALT	%

Для описания сочетаний нескольких клавиш с клавишами SHIFT, CTRL или ALT следует заключить коды этих клавиш в круглые скобки, а перед ними указать код, соответствующий клавише SHIFT, CTRL или ALT. Например, нажатию клавиш E и C при нажатой и удерживаемой клавише SHIFT соответствует «+(EC)». Для указания нажатия клавиши E при нажатой клавише SHIFT, за которым следует нажатие клавиши C без удерживания клавиши SHIFT, следует использовать код «+EC».
Для описания нескольких последовательных нажатий одной клавиши следует использовать синтаксис {клавиша число}. Пробел между элементами клавиша и число является обязательным. Например, {LEFT 42} означает «нажмите клавишу СТРЕЛКА ВЛЕВО 42 раза; {h 10} означает «нажмите клавишу H 10 раз».
Инструкция SendKeys предназначена для передачи нажатий клавиш только приложениям, разработанным для работы в среде Microsoft Windows. Кроме того, эта инструкция не позволяет передать нажатие клавиши PRINT SCREEN {PRTSC} ни в одно приложение.

Пример
В данном примере используется функция Shell для запуска приложения «Калькулятор», имеющийся в Microsoft Windows. Затем с помощью инструкции SendKeys имитируется нажатие клавиш для введения чисел и последующего выхода из калькулятора. Инструкция SendKeys не используется на Macintosh. (Для проработки примера вставьте его в процедуру с помощью буфера, а затем выполните эту процедуру. Поскольку инструкция AppActivate передает фокус приложению «Калькулятор», этот пример нельзя выполнить в пошаговом отладочном режиме.)

Dim ReturnValue, I
ReturnValue = Shell("CALC.EXE", 1)		' Запускает калькулятор.
AppActivate ReturnValue 			' Активизирует калькулятор.
For I = 1 To 100				' Организует цикл.
	SendKeys I & "{+}", True		' Передает данные калькулятору 
Next I					' для вычисления суммы.
SendKeys "=", True				' Окончательный результат.
SendKeys "%{F4}", True			' ALT+F4 закрывает калькулятор.

Имитация нажатия клавиш на клавиатуре в VBA Excel с помощью оператора SendKeys, в том числе эмуляция нажатия сочетаний клавиш. Синтаксис, коды, примеры.

Параметры оператора SendKeys:

Параметр Описание
string Обязательный параметр. Строковое выражение, возвращающее код клавиши (сочетания клавиш).
wait Необязательный параметр. Логическое значение, определяющее режим ожидания.
False (по умолчанию) – контроль процедуре возвращается сразу после отправки кода клавиш.
True – перед возвратом контроля процедуре коды клавиш обрабатываются.

Имитация нажатия клавиш

Эмуляция нажатия алфавитно-цифровых клавиш из кода VBA Excel, не представляющих спецсимволы: параметру string задается значение символа в прямых кавычках, например, "А", "Абвгд", "356".

Имитация нажатия клавиш, представляющих спецсимволы: параметру string задается значение символа в фигурных скобках, например, "{^}", "{)}".

Спецсимволы, которые следует заключать в фигурные скобки: плюс +, возведение в степень ^, знак процента %, тильда ~, круглые скобки (), квадратные скобки [] и сами фигурные скобки {}. Символы фигурных скобок указываются так: "{{}" и "{}}".

Для эмуляции нажатия специальных клавиш, включая функциональные и клавиши управления курсором, используются специальные коды, заключенные в фигурные скобки.

Фигурные скобки используются и для имитации нескольких нажатий одной клавиши из кода VBA Excel. В этом случае параметр string записывается в виде {клавиша число}, где число – количество нажатий. Например: "{а 10}".

Коды специальных клавиш

Клавиша Код
BACKSPACE {BACKSPACE} или {BS}
BREAK {BREAK}
CAPS LOCK {CAPSLOCK}
DEL или DELETE {DELETE} или {DEL}
СТРЕЛКА ВНИЗ {DOWN}
END {END}
ENTER {ENTER} или ~
ESC {ESC}
HELP {HELP}
HOME {HOME}
INS или INSERT {INSERT} или {INS}
СТРЕЛКА ВЛЕВО {LEFT}
NUM LOCK {NUMLOCK}
PAGE DOWN {PGDN}
PAGE UP {PGUP}
PRINT SCREEN {PRTSC}
СТРЕЛКА ВПРАВО {RIGHT}
SCROLL LOCK {SCROLLLOCK}
TAB {TAB}
СТРЕЛКА ВВЕРХ {UP}
F1 … F16 {F1}{F16}

Эмуляция сочетаний клавиш

Чтобы указать сочетание клавиш с SHIFT, CTRL, ALT или их комбинацией, необходимо добавить перед кодом клавиши один или несколько следующих кодов:

Клавиша Код
SHIFT +
CTRL ^
ALT %

Чтобы указать, что клавиши SHIFT, CTRL и ALT в любом сочетании необходимо удерживать, нажимая несколько других клавиш, заключите код для последних клавиш в круглые скобки. Например, чтобы указать, что нужно удерживать клавишу SHIFT, нажимая клавиши а, б, в, г, д, введите "+(абвгд)".

Важное примечание:
Применение оператора SendKeys может приводить к автоматическому отключению* правого цифрового блока клавиатуры (переключает на стрелки и специальные клавиши). Чтобы вернуть исходную функциональность цифрового блока, необходимо в конце процедуры применить имитацию нажатия клавиши «NUM LOCK»: SendKeys "{NUMLOCK}". К сожалению, работает не всегда.

* Обнаружено в Windows 8.1 (Excel 2016).

Примеры с оператором SendKeys

Коды примеров запускаются через кнопку на рабочем листе, иначе имитация нажатия клавиш произойдет в окне редактора VBA с записью символов внутри процедуры. Попробуйте, ради интереса, запустить код первого примера из редактора VBA.

Пример 1
Заполняем первые три ячейки столбца «A» различными значениями, имитируя нажатия клавиш из кода VBA Excel:

Sub Primer1()

‘Выбираем первую ячейку

Range(«A1»).Select

‘Нажимаем клавиши «а», «б» и «в»

SendKeys «абв»

‘Нажимаем «ENTER»

SendKeys «~»

‘Нажимаем клавиши «1», «2», «3» и «ENTER»

SendKeys «123  ~»

‘Нажимаем клавишу «7» пять раз и «ENTER»

SendKeys «{7 5} ~»

‘Активируем правый цифровой блок

‘SendKeys «{NUMLOCK}»

End Sub

Пример 2
Раскрываем с помощью кода VBA Excel автофильтр или выпадающий список (имитация нажатия сочетания клавиш ALT+↓):

Sub Primer2()

‘Выбираем ячейку с автофильтром или раскрывающимся списком

Range(«D1»).Select

‘Раскрываем список

SendKeys «%{DOWN}»

‘Активируем правый цифровой блок

‘SendKeys «{NUMLOCK}»

End Sub

Пример 3
Еще три варианта эмуляции нажатия сочетаний клавиш:

‘Создание новой книги

SendKeys «^n»

‘Открытие Диспетчера имен

SendKeys «^{F3}»

‘Открытие Диспетчера задач

SendKeys «^+{ESC}»

Return to VBA Code Examples

VBA SendKeys

The VBA SendKeys method is used to send keystrokes to the active application:

Application.SendKeys ("s")

The above code will mimic pressing the “s” key on the keyboard.

The SendKeys method takes two arguments:

  • Keys – The key(s) you want to send to the application as text.
  • Wait (Optional) – This value can either be True or False. If True, then Excel waits for the keys to be processed first before running the next line of code. If False, then Excel continues to run the procedure without waiting for the keys to be processed.

SendKeys is usually used when interacting with other applications because it’s a quick and easy way to accomplish tasks. For example, you might use SendKeys when automating Internet Explorer.

However, you should be extremely careful when using the SendKeys Method since it can have unexpected results.  We recommend using SendKeys only as a last resort and/or when mistakes are tolerable (or easily detectable). 

VBA SendKeys Examples

Each key in terms of letters is represented by their character, for example a is “a”.
If you would like to use keys in combination with Ctrl, Shift or Alt then you have to precede the key code with the following:

Key Code
Ctrl ^
Shift +
Alt %

The following code uses the SendKeys Method to save the workbook:

Sub UsingSendKeys()

Application.SendKeys ("^s")

End Sub

As we mentioned before, you need to be extremely careful when using SendKeys. The following code specifies a waiting time of 10 seconds before the text is entered/sent to Notepad. By waiting 10 seconds, you allow Notepad a chance to open properly, reducing the chance of an error.

Note: This code uses the Application.Wait Method.

Sub UsingSendKeysWithWait()

Call Shell("C:Windowssystem32Notepad.Exe", vbNormalFocus)
Application.Wait (Now() + TimeValue("00:00:10"))
Call SendKeys("This is Some Text", True)

End Sub

The result after 10 seconds of waiting time is:

Using Send Keys With Waiting Time in VBA

SendKeys can be an extremely quick and easy way to accomplish tasks. However, the risks of errors are relatively high. Only use SendKeys when that risk is acceptable!

VBA Coding Made Easy

Stop searching for VBA code online. Learn more about AutoMacro — A VBA Code Builder that allows beginners to code procedures from scratch with minimal coding knowledge and with many time-saving features for all users!
vba save as

Learn More!

Excel VBA SendKeys

SendKeys in VBA language is a method to send keystrokes to the active window so we can work manually after that. Whenever we use alphabets as the keys, all the alphabets need to be in lowercase characters. It is a complex method and recommended to use only if necessary and when you are out of options.

“SendKeys” is one of the more complex topics to understand. Not many of us use this feature in VBA, but it is always good to have more knowledge on more topics. This article will show you how to use the SendKeys function. You may find it difficult to reread the article multiple times with a practical approach to learn fast and better.

Table of contents
  • Excel VBA SendKeys
    • Syntax
    • Examples to use Excel VBA SendKeys Method
      • Example #1
      • Example #2
    • Things to Remember
    • Recommended Articles

SendKeys-in-VBA

You are free to use this image on your website, templates, etc, Please provide us with an attribution linkArticle Link to be Hyperlinked
For eg:
Source: VBA SendKeys (wallstreetmojo.com)

Syntax

Below is the syntax of the VBA SendKeys method.

VBA SendKeys Syntax

Keys or String: The kind of key that we need to send to the active application.

Wait: In this argument, we can use two things: TRUE or FALSE.

  • TRUE if you want the Excel to wait for the assigned Keys to process before returning the control to the Macro.
  • FALSE if you ignore the Wait parameter, this will be the default value. If you choose FALSE, Excel continues to run the Macro without waiting for the keys to process to the active window.

We use the keyboard’s common keys: “Ctrl, Shift, and ALT.” So, with the SendKeys method, we need to use them with special characters. The below table shows the special characters for the above three common keys.

Key Character Character Description
Ctrl ^ Caret
Shift + Plus Sign
ALT % Percent Sign

Other keys have different keys and characters. The below table shows the detailed explanation for each key.

Key Code
BACKSPACE {BACKSPACE} or (BS}
BREAK {BREAK}
CAPS LOCK {CAPSLOCK}
CLEAR {CLEAR}
DELETE or DEL {DELETE} or {DEL}
DOWN ARROW {DOWN}
END {END}
ENTER (numeric keypad) {ENTER}
ENTER ~ {tilde}
ESCAPE {ESCAPE} or {ESC}
HELP {HELP}
HOME {HOME}
INS {INSERT}
LEFT ARROW {LEFT}
NUM LOCK {NUMLOCK}
PAGE DOWN {PGDN}
PAGE UP {PGUP}
RETURN {RETURN}
RIGHT ARROW {RIGHT}
SCROLL LOCK {SCROLLLOCK}
TAB {TAB}
UP ARROW {UP}
F1 through F15 {F1} through {F15}

As per the requirement, we can use any of the above keys. With some practical examples, we will show you how to use SendKeys.

Examples to use Excel VBA SendKeys Method

You can download this VBA SendKeys Excel Template here – VBA SendKeys Excel Template

Example #1

Look at the below cell value.

vba sendkeys Example 1

We have values in three cells. For example, in the first cell, we have a value of “Bangalore.” So for this cell, there is a comment as the “Capital City of Karnataka.”

Now, using “SendKeys,” we try to edit this comment.

Open the Excel sheet. Go to the Visual Basic Editor, and start the VBA subprocedureSUB in VBA is a procedure which contains all the code which automatically gives the statement of end sub and the middle portion is used for coding. Sub statement can be both public and private and the name of the subprocedure is mandatory in VBA.read more.

Code:

Sub Send_Keys_Example()

End Sub

vba sendkeys Example 1-1

First, we need to select the comment cell to edit the comment. So, use the code RANGE(“A1”).Select

Code:

Sub Send_Keys_Example()

Range("A1").Select

End Sub

vba sendkeys Example 1-2

Once the cell is selected, we will act on editing the comments. Here, we must recollect the keyboard shortcutAn Excel shortcut is a technique of performing a manual task in a quicker way.read more we used to edit the comment.

We use the shortcut key “Shift + F2” to edit the comment.

Edit Comment Shortcut Key

If you press this key, it will edit the comment.

Now, open the “SendKeys” method.

vba sendkeys Example 1-3

In the SendKeys method, the character for using the SHIFT key is “+” (Plus sign), so enter the “+” sign-in code.

vba sendkeys Example 1-4

Now, plus sign works as a SHIFT key. The next key, along with SHIFT, we use is the F2 key. We need to enclose function keys with curly brackets whenever we use function keys. So, enter the function key F2 in the curly bracket.

Code:

Sub Send_Keys_Example()

Range("A1").Select

SendKeys "+{F2}"

End Sub

vba sendkeys Example 1-5

Now execute the code and see what we get.

Error Example 1-6

When we tried to execute the code, we got the message above. One of the key things we need to keep in mind is we cannot run the Macro, which uses “SendKeys” from the Visual Basic Editor window.

We need to run the code from the “Macro” list.

Close the Visual Basic EditorThe Visual Basic for Applications Editor is a scripting interface. These scripts are primarily responsible for the creation and execution of macros in Microsoft software.read more Window first.

Go to the “Developer” tab and click on “Macros.”

Macros Example 1-7

Now, a list of all the Macros opens up. Choose the Macro that you need to run. Our Macro name is “Send_Keys_Example,” so we will press the “Run” button.

Comment cell Example 1-8

You can see that the “Edit” comment option is enabled.

vba sendkeys Example 1-9

As you can see above, it has assigned the shortcut key of SHIFT + F2 to open the edit comment option.

Example #2

We can do this if you want to open the “Paste SpecialPaste special in Excel allows you to paste partial aspects of the data copied. There are several ways to paste special in Excel, including right-clicking on the target cell and selecting paste special, or using a shortcut such as CTRL+ALT+V or ALT+E+S.read more” window through the SendKeys method. But, first, we need to copy certain cells and then use the SendKeys.

Code:

Sub Send_Keys_Example1()

Range("A1").Copy

SendKeys "%es"

End Sub

Paste special code Example 2

Choose the Macro you need to run and click on “Run.”

Paste special Example 2-1

When you run the code, it will open below the Paste Special dialog box.

vba sendkeys Example 2-2

Things to Remember

  • The SendKeys assigns keystrokes to the active application.
  • This method is complex and recommended only if necessary and when you are out of options.
  • Whenever we use alphabets as the keys, all the alphabets need to be in lowercase characters.

Recommended Articles

This article has been a guide to SendKeys in VBA. Here, we discuss the examples of the VBA SendKeys method,  used to send keystrokes to the active window to work manually in Excel. Below you can find some useful Excel VBA articles: –

  • VBA ReDim Array
  • VBA ByVal
  • VBA String Comparison
  • VBA On Error GoTo

Понравилась статья? Поделить с друзьями:
  • Нажатие клавиши f4 приводит к преобразованию адреса в ячейке листа ms excel
  • Нажатие enter в макросах excel
  • Нажатие ctrl enter word
  • Нажала не сохранять как восстановить excel файл
  • Нажал несколько клавиш в excel