Требуется найти координаты места окончания текста

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

Ответить
dch
Сообщения: 1
Зарегистрирован: 19 июн 2004, 01:49

цель работы: в ячейку забивается тескт (сумма денег прописью)
и все что идет за ним зачеркивается двойной сплошной линией.

Я делаю на VBA следующее
ActiveSheet.Shapes.AddLine(aaa, bbb, ccc, ddd).Select
требуется найти aaa, которое и есть координата по "х"
начала линии.

может есть еще какие идеи :?: :?:
спасибо заранее.
Аватара пользователя
Oscar
Сообщения: 963
Зарегистрирован: 29 май 2004, 13:44
Откуда: Мюнхен (рожден в Киеве)
Контактная информация:

проходил мимо, vba не знаю...

1. VBA, случайно, HTML не использает? <strike>test</strike> ... Правда не двойной, но просто - ПРОСТО! ))
2. Если HTML - нет, то ... может всё же есть что-то подобное .. В настройках шрифта...
3. В зависимости от размера и типа шрифта прикинуть, какой размер по X одной буквы и множить на колличество букв,
или буквы тоже могут разный размер иметь? ...

P.S. Сорри, что влез, но всё равно все молчат ))
Аватара пользователя
Naeel Maqsudov
Сообщения: 2570
Зарегистрирован: 20 фев 2004, 19:17
Откуда: Moscow, Russia
Контактная информация:

ActiveSheet.Shapes.AddLine
:)

Обратившись к ячейке, воспользуйтесь свойством .Characters(С_позиции, по_позицию) - это набор символов, из которых состоит текст ячейки. А далее .Font.StrikeThrough=true - т.е. все как обычно.

НО, это только одинарная линия :(

Если бы можно было перевести проект в Word, то там, аналогичным образом можно и двойное зачеркивание. А, позвольте спросить, не букву ли "Y" требуется зачеркнуть.

PS
Вычисление же ширины символов выполняется функциями WinAPI, однако этим функциям необходима ссылка на контекст устройства в котором выводится текст, а я не знаю как в VBA получить эту ссылку. Может кто знает?
Ответить