Можно ли сфокусироваться на другом окне с помощью команды VBA в Excel 2007? - PullRequest
0 голосов
/ 02 февраля 2012

Я хочу запустить скрипт VBA из Excel 2007, который может переключить фокус на другое активное окно (ALT + TAB), отправить команды в это окно, а затем вернуть фокус в Excel и продолжить выполнение команд в VBA.

Например:

Скопируйте содержимое ячейки A1, сфокусируйтесь на активном окне Internet Explorer, отправьте команду клавиши TAB, вставьте скопированные данные из A1, а затем переориентируйте обратно в Excel, чтобы продолжить VBA.сценарий.

Возможно ли это?Я не смог найти нужную информацию в Интернете и чувствую, что это можно сделать с помощью Excel VBA.

Ответы [ 2 ]

2 голосов
/ 02 февраля 2012

В самом VBA вы не можете буквально отправлять ключи или управлять другим приложением . Тем не менее вы можете использовать API-интерфейсы Microsoft для имитации поведения в Office Suite или, в некоторой степени, в Internet Explorer.

Вы можете либо:

0 голосов
/ 04 февраля 2012

Я обнаружил и использовал это программное обеспечение под названием AutoHotkey .Это бесплатный и открытый исходный код.

Он позволяет создавать сценарии макросов с использованием собственного синтаксиса, который довольно интуитивно понятен в использовании.

Проблема, которую я хотел решить, была гораздо проще выполнить с помощью AutoHotkey по сравнению с Excel VBA.

Код AutoHotkey для указанного выше псевдокода:

#space::
;Focus to Excel and copy contents of cell A1
WinActivate Microsoft Excel - filename.xls
Send {Ctrldown}{Home}{Ctrlup}
Send ^c

;Focus to Internet Explorer, TAB to the first field, and paste clipboard data into it
WinActivate Google - Windows Internet Explorer
Send {Tab}
Send ^v

;Focus back to Excel
WinActivate Microsof Excel - filename.xls
return

Не стоит вдаваться в подробности этого синтаксиса, но я просто вставил его для демонстрационных целей.

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

Существует также более общая информация о программе и ее возможном использовании в WikiPedia

...