Я знаком с OLE Automation и управлением другими приложениями из данной VBA IDE/VBE (в частности, VBE от Excel). Хотя я знаю, что метод SendKeys можно использовать для того, чтобы по существу выполнить то, что я пытаюсь сделать, я чувствую, что он может быть ненадежным в определенных ситуациях (не говоря уже о небольшой небрежности).OLE Автоматизация и взаимодействие с другой VBE/VBA IDE
Вкратце, я пытаюсь написать модуль VBA в текстовый файл из Excel (уже вычислен этот вариант), а затем импортировать модуль VBA IDE целевого приложения и выполнить код.
Мои основные причины этого в том, что справочные библиотеки, доступные для Excel в отношении указанного целевого приложения, имеют ограничения (в то время как, как и следовало ожидать, VBA IDE целевого приложения имеет гораздо больше свойств и методов для работы в качестве ссылки библиотеки являются специфическими для самого приложения по понятным причинам).
Любые мысли о том, как наилучшим образом достичь этого?
Было бы лучше просто создать настраиваемую ссылку или настройку COM или существующую (я бы предположил, что это довольно сложно, поскольку я не знаком с C# или Visual Studio)?
(Примечание: в случае, если вам было интересно, я работаю с сеансами отражения (IBM, для Windows) и довольно активно подвергаюсь первичному COM, с которым я работаю (EXTRACOM). В рамках VBE Reflection Sessions есть методы, такие как .GetFieldText
(который вернет полное имя поля независимо от того, где курсор приложения помещен в заданное поле.Это может быть намного более полезным, чем .GetString
EXTRACOM, который требует от программиста указания длины поля сначала и положения курсора). метод: .GetFieldColor
(который вернет числовой код для цвета поля, свойство/метод, который отсутствует в EXTRACOM (файл ссылки Excel для Reflection).
Удачи с этим ... Только так я мог программно получить VBA кода для выполнения из VBE надстройки была на инстанцировании хоста приложения и вызов 'Application.Run' ... [который ISN» t поддерживается на всех хостах VBE] (http://stackoverflow.com/q/31954364/1188513). Если вы достигнете этого, проект [Rubberduck] (http://www.rubberduck-vba.com), безусловно, будет рад услышать ваш вход! (заметьте, я являюсь совладельцем и поддерживаю этот проект) –
Все еще запутано - вы хотите написать содержимое модуля в текстовый файл (или просто экспортировать .bas-файл?), а затем импортировать его в другое приложение Office? или приложение, отличное от Office? –
Какую версию отражения вы используете? Это 2011 или после или что-то еще до этого? Я не уверен, что полностью понимаю, что вы пытаетесь сделать, но мне очень повезло с C#, который взаимодействует с Excel и Reflection (2011). – Hambone