Заполните поля в VB6 исполняемый файл из MS Office VBA - PullRequest
1 голос
/ 20 августа 2010

Я занимаюсь разработкой автономного приложения VB6, которое я хотел бы иметь возможность вызывать из модулей VBA, работающих в Excel, Outlook и т. Д. В идеале я хотел бы, чтобы модуль VBA проверял, запущено ли уже приложение VB6 если нет, откройте его, затем заполните определенные элементы управления (текстовое поле, список и т. д.) в приложении VB6 информацией из модуля VBA. Это вообще возможно? Могу ли я просто создать ссылку на приложение VB6, а затем обработать его как любой другой объект? Спасибо за вашу помощь!

Ответы [ 2 ]

4 голосов
/ 20 августа 2010

Превратите приложение Vb6 в проект ActiveX Exe. Вот руководство VB6 по созданию exe-файла ActiveX. Добавьте ссылку на vb6 из кода VBA. Вы сможете вызывать объекты в Vb6 с вашего VBA.

Используйте GetObject для создания экземпляра объекта Vb6 из VBA. Это позволит подключиться к любому существующему экземпляру приложения vb6 или запустить новый экземпляр, если необходимо.

0 голосов
/ 20 августа 2010

Вы не можете делать так, как вы описываете и обрабатывать приложение VB6, как объект и объект, но вы могли бы сделать это следующим образом:

  1. Используйте API-вызов FindWindow , чтобы определить,приложение VB6 работает
  2. Используйте команду Shell, чтобы запустить его
  3. Используйте AppActivate, чтобы сделать окно VB6 активным, и SendKeys, чтобы отправить данные в него

Это было бы самое простое решение «из коробки».Однако это будет довольно хрупким.Например, если вы удалили элементы управления из формы VB6 или изменили порядок вкладок элементов управления, ваше приложение будет работать неправильно!

Другой вариант - DDE, но я думаю, что ссылка DDE предназначена для перехода из приложения VB6 вWord или Excel, а не наоборот.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...