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

Содержание:

Anonim

Excel VBA SendKeys

В этой статье мы увидим план Excel VBA SendKeys. Вы когда-нибудь задумывались о создании программы, которая автоматически сохраняет ваш рабочий лист, и вам не нужно нажимать кнопку «Ctrl + S» или «Сохранить в Excel» для этого? Это кажется фантастикой, верно? Однако это можно сделать. В VBA есть оператор команды, называемый SendKeys, который позволяет отправлять нажатия клавиш в виде команды в приложение так же, как если бы вы использовали клавиатуру для выполнения задачи. (Пример. Сохранение файла. Для сохранения файла вы нажимаете Ctrl + S на клавиатуре). Рекомендуется использовать SendKeys в качестве последнего параметра при автоматизации любой задачи. Причина этого в том, что, как мы уже обсуждали, SendKeys отправляет нажатия клавиш приложению, которое в данный момент активно. Что если у вас есть активное окно приложения во время выполнения кода, в котором вы не хотите, чтобы изменения произошли? Это даст неожиданные результаты, верно? Это единственная причина, мы должны использовать SendKeys в качестве последнего варианта при автоматизации вещей. Однако его можно использовать для небольшой автоматизации, когда никакая другая прикладная среда не будет мешать той, в которую вы хотели внести изменения.

Синтаксис метода SendKeys:

SendKeys(String As String, (Wait))

Где,

Первый аргумент «String As String» указывает комбинации клавиш, которые вы хотите использовать в программе (например, комбинация клавиш Ctrl + S).

Wait будет необязательным параметром, который принимает логические значения 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.

Вы можете скачать этот шаблон Excel VBA SendKeys здесь - Шаблон Excel VBA SendKeys

VBA SendKeys - Пример № 1

Давайте рассмотрим несколько простых примеров, которые позволят нам глубже погрузиться в работу команды VBA SendKeys.

В этом первом примере мы увидим очень простую автоматизацию, которая автоматически сохраняет текущий открытый файл Excel. Вам не нужно нажимать кнопку Сохранить или Ctrl + S, чтобы сохранить файл. Следуйте инструкциям ниже для достижения результата.

Шаг 1. Откройте модуль на вкладке меню «Вставка», как показано ниже.

Шаг 2: Определите новую подпроцедуру, которая может содержать ваш макрос.

Код:

 Sub Example_1 () End Sub 

Шаг 3: Теперь, чтобы сохранить любой файл, у вас есть комбинация клавиш клавиатуры в виде Ctrl + S. Чтобы преобразовать это в код, мы можем использовать оператор каретки (^), а затем ключевое слово «s» в качестве аргумента оператора SendKeys.

Код:

 Sub Example_1 () Application.SendKeys ("s") End Sub 

Здесь ключевое слово Application указывает приложение, в которое мы посылаем нажатия клавиш (в данном случае приложение Excel). «S» в скобках указывает на аналогичную операцию клавиатуры Ctrl + S.

Шаг 4: Запустите этот код, нажав кнопку «Выполнить» или нажав клавишу F5.

После успешного запуска этого кода ваш файл будет сохранен.

VBA SendKeys - Пример № 2

Теперь мы увидим, как закрыть текущее приложение, отправив программные клавиши через код макроса с помощью метода SendKeys. Следуйте инструкциям ниже:

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

Код:

 Sub Example_2 () End Sub 

Шаг 2: Используйте метод Application.SendKeys для передачи программных клавиш клавиатуры в приложение. Поскольку текущую панель VBA можно закрыть с помощью сочетания клавиш Alt + Q, мы можем использовать «% q» под макросом.

Код:

 Sub Example_2 () Application.SendKeys ("% q") End Sub 

Шаг 3: Нажмите кнопку Run или F5, чтобы запустить этот код. Как только вы запустите этот код, текущий редактор Visual Basic закроется, и вы перейдете к файлу Excel.

VBA SendKeys - Пример № 3

Теперь мы собираемся написать код, который автоматически открывает Блокнот и автоматически пишет текст в нем. Смотрите скриншот ниже:

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

Код:

 Sub Example_3 () End Sub 

Оболочка вызова позволяет системе открывать приложение. Путь, где находится Notepad.exe. vbNormalFocus - это необязательный аргумент, который указывает на фокус на открытии и восстановлении приложения до его исходного размера и положения.

Шаг 2: Используйте Call и Sendkeys в комбинации, чтобы система могла добавить текст в Блокнот.

Код:

 Sub Example_3 () Вызовите оболочку («C: \ Windows \ System32 \ Notepad.exe», vbNormalFocus) End Sub 

Шаг 3: Здесь мы добавляем текст «Здравствуйте, VBA!» С помощью SendKeys в Блокнот. True указывает время ожидания для команды SendKeys.

Код:

 Sub Example_3 () Call Shell ("C: \ Windows \ System32 \ Notepad.exe", vbNormalFocus) Вызов SendKeys ("Привет VBA!", True) End Sub 

Шаг 4: Запустите этот код, нажав клавишу F5 или нажав кнопку «Выполнить».

Вот как мы можем использовать метод SendKeys для автоматизации приложений через макрос VBA.

То, что нужно запомнить

  • Будьте очень осторожны при использовании SendKeys, так как это может привести к неожиданным результатам, если у вас открыто несколько приложений.
  • Вы можете использовать SendKeys для автоматизации небольших задач, таких как сохранение файла Excel, закрытие файла Excel и т. Д.
  • Используйте метод SendKeys как последний вариант, когда вы пытаетесь автоматизировать вещи.

Рекомендуемая статья

Это руководство по VBA SendKeys. Здесь мы обсудим, как использовать метод SendKeys в Excel VBA вместе с практическими примерами и загружаемым шаблоном Excel. Вы также можете просмотреть наши другие предлагаемые статьи -

  1. VBA While Loop (Примеры с шаблоном Excel)
  2. VBA Environ | Шаблоны Excel
  3. Поиск цели VBA (пример)
  4. Как изменить имя рабочего листа в Excel VBA?