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))

Де,

Перший аргумент "Рядок як рядок" вказує комбінації клавіш, які ви хотіли використовувати в програмі (наприклад, комбінація клавіш - наприклад, Ctrl + S).

Wait буде необов'язковим параметром, який приймає булеві значення 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. Вам не потрібно натискати кнопку Зберегти або Ctrl + S, щоб зберегти файл. Для досягнення результату виконайте наведені нижче дії.

Крок 1: Відкрийте модуль на вкладці меню Вставка, як показано нижче.

Крок 2: Визначте нову процедуру, яка може містити ваш макрос.

Код:

 Sub Example_1 () Закінчення Sub 

Крок 3: Тепер, щоб зберегти будь-який файл, у вас є комбінація клавіш клавіатури як Ctrl + S. для перетворення цього коду, ми можемо використовувати оператор caret (^), а потім ключове слово "s" як аргумент до заяви SendKeys.

Код:

 Sub Example_1 () Application.SendKeys ("s") Кінець Sub 

Тут ключове слово Application визначає програму, якій ми надсилаємо натискання клавіш (в даному випадку додаток Excel). "S" під дужками вказує аналогічну операцію клавіатури Ctrl + S.

Крок 4: Запустіть цей код, натиснувши кнопку Запустити або натиснувши клавішу F5.

Після успішного запуску цього коду ваш файл зберігається.

VBA SendKeys - приклад №2

Тепер ми побачимо, як закрити поточну програму, надіславши програмні клавіші через макрокод за допомогою методу SendKeys. Виконайте наведені нижче дії:

Крок 1: Напишіть підпроцедуру, яка може містити ваш макрос під модулем.

Код:

 Sub Example_2 () Кінець Sub 

Крок 2: Використовуйте метод Application.SendKeys для передачі програмних клавіш клавіатури. Оскільки поточну панель VBA можна закрити комбінацією клавіш Alt + Q, ми можемо використовувати "% q" під макросом.

Код:

 Sub Example_2 () Application.SendKeys ("% q") Кінець Sub 

Крок 3: Натисніть кнопку Запустити або F5, щоб запустити цей код. Як тільки ви запустите цей код, поточний редактор Visual Basic закриється, і ви перейдете до файлу Excel.

VBA SendKeys - приклад №3

Тепер ми будемо писати код, який автоматично відкриває Блокнот і автоматично записує в нього текст. Дивіться скріншот нижче:

Крок 1: Напишіть підпроцедуру, яка може містити ваш макрос під модулем.

Код:

 Sub Example_3 () Кінець Sub 

Оболонка виклику дозволяє системі відкривати додаток. Шлях там, де присутній Notepad.exe. vbNormalFocus - необов'язковий аргумент, який визначає фокус на відкритті та відновленні програми до її початкового розміру та положення.

Крок 2: Використовуйте клавіші виклику та відправки в поєднанні, щоб система могла додавати текст у Блокнот.

Код:

 Sub Example_3 () Оболонка виклику ("C: \ Windows \ System32 \ Notepad.exe", vbNormalFocus) Кінець підрозділу 

Крок 3: Тут ми додаємо текст "Привіт VBA!", Використовуючи SendKeys в Блокнот. True задає час очікування команди SendKeys.

Код:

 Sub Example_3 () Shell виклику ("C: \ Windows \ System32 \ Notepad.exe", vbNormalFocus) Call CallKeys ("Привіт VBA!", True) Кінець Sub 

Крок 4: Запустіть цей код, натиснувши клавішу F5 або натиснувши кнопку Виконати.

Ось так ми можемо використовувати метод SendKeys для автоматизації програм через макрос VBA.

Що потрібно пам’ятати

  • Будьте дуже обережні, використовуючи SendKeys, оскільки це може дати несподівані результати, якщо у вас відкрито кілька додатків.
  • Ви можете використовувати SendKeys для автоматизації невеликих завдань, таких як збереження файлу Excel або закриття файлу Excel тощо.
  • Використовуйте метод SendKeys як останній варіант, коли ви намагаєтеся автоматизувати речі.

Рекомендована стаття

Це путівник по VBA SendKeys. Тут ми обговорюємо, як використовувати метод SendKeys в Excel VBA разом із практичними прикладами та шаблоном Excel, який можна завантажити. Ви також можете ознайомитися з іншими запропонованими нами статтями -

  1. VBA while цикл (приклади з шаблоном Excel)
  2. VBA Environment | Шаблони Excel
  3. Пошук цілі VBA (приклад)
  4. Як змінити робочий лист з іменами в Excel VBA?