Visio VBA Получить BoundingBox текста

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

Для этого я создал функцию VBA, которая принимает форму группы в качестве аргумента, и она вызывается в событии TextText на форме.

Таким образом, процедура просто вызывает BoundingBox(visBBoxUprightText) для формы группы, чтобы получить границы текста и найти подфигу справа от bbox. Но границы кажутся неправильными. Они возвращаются иногда хорошо слева или справа от последнего персонажа.

Должен ли флаг visBBoxUprightText означать что-то другое, кроме получения координат прямоугольника вокруг визуализированных текстовых символов?

РЕДАКТИРОВАТЬ: Рассматривая это еще немного, я вижу, что метод BoundingBox смотрит на свойство shape.type, чтобы определить, что включает в себя boundingbox. Если типом фигуры является visGroup, то он также будет включать подфигурки, и, похоже, нет флага, который заставлял бы группу рассматривать простую фигуру.

Итак, я думаю, теперь вопрос заключается в том, есть ли способ получить BoundingBox текста, игнорируя под-формы? Я попытался поместить отдельную суб-форму для хранения текста, и теперь она работает как шарм.

1 ответ

Решение

Visio не позволяет получить ограничивающую рамку текста, игнорируя текст подформ в сгруппированной форме.

Другие вопросы по тегам