Есть приложение, отдельная программа, которая хорошо передает в Excel (и получает от него) динамические данные через DDE. Сделано это через специальную dll-ку, которая идет в комплекте с программой, и к Excel-у подключена через Tools---Add-ins.
После такого подключения в обычных ячейках любого листа можно вставлять код типа =Ivanov1|cxl!Held23
И программа начинает выдавать Excel-у в эту ячейку число "про Иванова", причем динамически - обновляя 3-5 раз в секунду.
Таких ячеек (но со слегка другими параметрами) на одном листе должно быть штук 20, все в real-time обновляются. Их надо с минимальными задержками обсчитывать по довольно сложной формуле с множеством логических функций (больше\меньше, если\иначе). А результатом выдавать одно число.
Формулу в принципе можно запрограмировать в Excel-ячейках, но очень неудобно, нечитаемо, нередактируемо.
Хочется сделать все в VBA.
Но! При запуске макроса, обновление ячеек с кодом типа =Ivanov1|cxl!Held23 - останавливается. И бесполезно писать Y = Range (A4) (в А4 число про Иванова мелькало только до запуска макроса, а после запуска - замерло)
Внутри же VB текста вставить строчку типа Y = Ivanov1|cxl!Held23 , т.е. обратиться к внешней программе с запросом - не получается - отладчик выдает ошибку.
Иницировать DDE-канал стандартными процедурами Application.DDEInitiate тоже непонятно как - что указывать в топике? В инструкции к программе, где описывается импорт из нее в Excel, даются только способы получения данных прямо в ячейки таблицы, где надо прописывать те самые "формулы" =Ivanov1|cxl!Held23 или =Petrov2|cxl!Held7
Подскажите пожалуйста, как, запустив VBA-код, внутри него можно было бы получать данные от Add-in-на программы и присваивать их переменным? что бы потом обсчитывать эти переменные по формуле.
Заранее спасибо. Извините, если вопрос глупый.