VBA SendKeys - Как да използвате метода SendKeys в Excel VBA?

Съдържание:

Anonim

Excel VBA SendKeys

В тази статия ще видим контур на Excel VBA SendKeys. Замисляли ли сте се да създадете програма, която автоматично запазва работния ви лист и няма нужда да натискате бутона Ctrl + S или Excel Save, за да го направите? Изглежда, че е фантазия, нали? Това обаче може да се направи. Във VBA има команда, наречена SendKeys, която ви позволява да изпращате натисканията на клавиши като команда към приложението по същия начин, както ако използвате клавиатурата, за да изпълните задачата. (Например запаметяване на файла. Правите Ctrl + S клавиатура чрез клавиатура, за да запазите файл). Препоръчва се да използвате SendKeys като последна опция, докато автоматизирате всяка задача. Причината за това е, както вече обсъдихме, SendKeys изпраща натисканията на клавиша към приложението, което е активно в момента. Ами ако имате активен прозорец на приложението по време на работа на код, под който не искате промените да се случват? Ще даде неочаквани резултати, нали? Това е единствената причина, ние трябва да използваме SendKeys като последна опция, докато автоматизираме нещата. Той може да се използва за малката автоматизация, обаче, когато никоя друга среда на приложение няма да се намесва в тази, която сте искали да се случи промяната.

Метод на синтаксиса на SendKeys:

SendKeys(String As String, (Wait))

Където,

Първият аргумент „String As String“ указва комбинациите от ключове, които искате да използвате в рамките на програмата (напр. Ctrl + S би била комбинацията от ключове).

Изчакайте ще бъде незадължителен параметър, който приема булеви стойности TRUE и FALSE. Ако чакането има стойността TRUE, това означава, че системата ще изчака ключовете да бъдат обработени и след това ще премине към следващия ред и ще компилира / изпълни същия. Ако стойността на изчакване е FALSE (може да остане празна), тогава системата няма да изчаква ключовете да бъдат обработени и ще продължи да изпълнява целия код.

Използват се някои методи, които можете да комбинирате натисканията на клавиши с Ctrl, Shift или Alt. Нека да видим как можем да направим това. Следва таблица, която определя комбинациите от натискания на клавиши за SendKeys с Ctrl, Shift и Alt:

Ключ, който трябва да се комбинира Оператор, който се използва преди клавишите за комбинация
изместване + (Клавиатура плюс знак)
Ctrl (Знак за оператор на карет)
Alt % (Знак за процент)

Е, какво означава това? Това означава, че ако искате да използвате комбинация клавиатура като Ctrl + S под кода, можете да използвате метода SendKeys и да го направите с SendKeys, след това Caret (^) оператор за Ctrl и след това „s“. Това ще запази текущия работен лист във вашия файл на excel.

Как да използвате метода SendKeys в Excel VBA?

Ще научим как да използваме метода SendKeys в Excel, като използваме кода VBA.

Можете да изтеглите този шаблон на VBA SendKeys Excel тук - VBA SendKeys Excel шаблон

VBA SendKeys - Пример №1

Нека имаме няколко прости примера, които ще ни позволят да се потопим по-дълбоко в работата на командата VBA SendKeys.

В този първи пример предстои да видим много проста автоматизация, която автоматично записва отворения текущ Excel файл. Не е необходимо да натискате бутона Save или Ctrl + S, за да запазите файла. Следвайте стъпките по-долу, за да постигнете резултата.

Стъпка 1: Отворете модула от раздел Вмъкване на менюто, както е показано по-долу.

Стъпка 2: Определете нова под-процедура, която може да съдържа вашия макрос.

Код:

 Под Пример_1 () Край Sub 

Стъпка 3: Сега, за да запишете всеки файл, имате комбинация от клавиатурни клавиши като Ctrl + S., за да преобразувате това в код, можем да използваме оператора caret (^) и след това ключовата дума „s“ като аргумент към оператора SendKeys.

Код:

 Под пример_1 () Application.SendKeys ("s") Край Sub 

Тук приложението за ключови думи определя приложението, към което изпращаме натискания на клавиши (в случая приложението Excel). „S“ под скобите указва подобната операция на клавиатурата Ctrl + S.

Стъпка 4: Изпълнете този код, като натиснете бутона Run или натиснете клавиша F5.

След успешното изпълнение на този код, вашият файл се запазва.

VBA SendKeys - Пример №2

Сега предстои да видим как да затворим текущо приложение, като изпращаме софтуерни клавиши през макро кода, използвайки метода SendKeys. Следвайте стъпките по-долу:

Стъпка 1: Напишете под-процедурата, която може да държи вашия макрос под модула.

Код:

 Под Пример_2 () Край Sub 

Стъпка 2: Използвайте Application.SendKeys метод, за да предадете клавиатурните клавиши на приложението. Тъй като текущият панел VBA може да бъде затворен с клавишната комбинация Alt + Q, можем да използваме „% q“ под макрос.

Код:

 Под пример_2 () Application.SendKeys ("% q") Край Sub 

Стъпка 3: Натиснете бутона Run или F5, за да стартирате този код. Щом стартирате този код, текущият Visual Basic Editor ще се затвори и ще преминете към файла Excel.

VBA SendKeys - Пример №3

Сега ще напишем код, който автоматично отваря Бележника и автоматично записва текст в него. Вижте екрана по-долу:

Стъпка 1: Напишете под-процедурата, която може да държи вашия макрос под модула.

Код:

 Sub Example_3 () Край Sub 

Call Shell позволява на системата да отвори приложението. Пътят е там, където е Notepad.exe. vbNormalFocus е незадължителен аргумент, който определя фокуса върху отваряне и възстановяване на приложението до първоначалния му размер и позиция.

Стъпка 2: Използвайте клавиши за повикване и изпращане, за да може системата да добави текст в Notepad.

Код:

 Sub Example_3 () Shell на повикване ("C: \ Windows \ System32 \ Notepad.exe", vbNormalFocus) End Sub 

Стъпка 3: Тук добавяме текста „Здравей VBA!“, Използвайки SendKeys в Notepad. True указва времето на изчакване за командата SendKeys.

Код:

 Sub Example_3 () Shell на повикване ("C: \ Windows \ System32 \ Notepad.exe", vbNormalFocus) CallKeys Call ("Здравей VBA!", Вярно) End Sub 

Стъпка 4: Изпълнете този код, като натиснете клавиша F5 или кликнете върху бутона Run.

Ето как можем да използваме метода SendKeys за автоматизиране на приложенията чрез макрос VBA.

Неща, които трябва да запомните

  • Бъдете много внимателни, докато използвате SendKeys, тъй като може да даде неочаквани резултати, ако имате отворени множество приложения.
  • Можете да използвате SendKeys за автоматизиране на малките задачи като запазване на Excel файл или затваряне на Excel файл и т.н.
  • Използвайте метода SendKeys като последна опция, докато се опитвате да автоматизирате нещата.

Препоръчителен член

Това е ръководство за VBA SendKeys. Тук обсъждаме как да използваме метода SendKeys в Excel VBA, заедно с практически примери и шаблон за Excel за изтегляне. Можете да разгледате и другите ни предложени статии -

  1. VBA докато цикъл (примери с шаблон на Excel)
  2. VBA Environment | Шаблони на Excel
  3. Търсене на цел VBA (пример)
  4. Как да промените името на работния лист в Excel VBA?