Есть ли способ получить текст и положение курсора из панели формул в Excel? - PullRequest
6 голосов
/ 26 февраля 2011

Я хотел бы получить текущий (возможно, незафиксированный) текст из панели формул в Excel (из надстройки в процессе). Все «обычные» методы не работают, например, GetWindowText (...) и т. Д.

Что касается позиции курсора: GetCaretPos фактически работает (возвращает координаты x, y каретки), но EM_CHARFROMPOS - нет (всегда возвращает 0), так что это тупик.

Доступна ли эта функция каким-либо образом через COM или XLL API?

РЕДАКТИРОВАТЬ: Я также хотел бы отметить, что я думаю, что большинство моих проблем связаны с тем фактом, что панель формул (по крайней мере, я уверен на 99%) НЕ является элементом управления редактирования, который можно увидеть глядя на свой класс окна.

Ответы [ 2 ]

3 голосов
/ 26 февраля 2011

Строка формул и большинство элементов управления в Office нестандартны. Отправка стандартных сообщений не приведет к успеху.

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

2 голосов
/ 28 февраля 2011

SteveN, какая версия Excel? Элемент управления будет окном. Office 2010 «приятнее» в этом отношении, используя более стандартные элементы управления. Вы можете использовать Spy для просмотра всех сообщений, которые отправляются на этот элемент управления, и попытаться повторить их, чтобы увидеть, что вы получаете. Хотя долгий путь.

...