Новости:

Форум на данный момент в стадии обновления. Если у Вас возникли проблемы со входом в свою учетную запись - просьба писать на email: info@excel-vba.ru

Главное меню

Выделение части текста примечания жирным средствами VBA

Автор Niff-Nif, 17.05.2013, 15:18:02

« назад - далее »

Niff-Nif

Добрый день,
Вопрос собственно в теме: есть примечание с текстом, мне нужно часть текста выделить жирным, чтобы он бросался в глаза. Пробовал макрорекордером, но он ничего не пишет.

Niff-Nif

The_Priest, Юрий М., doober,
Где Вы, повелители V и мастера BA??
Неужели никто не знает, как выделить жирным?
Попробуем с другого конца, а можно ли выделить последнее слово и эмулировать нажатие сочетания клавиш Ctr+B?

Дмитрий Щербаков(The_Prist)

Уговорили. Я Вам как-то показывал, как авторазмер примечания сделать. Плясать надо было от этого.
ActiveCell.AddComment "Hay, peoples!"
ActiveCell.Comment.Shape.OLEFormat.Object.Characters(1, 3).Font.Bold = True
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...

Niff-Nif

#3
Цитата: The_Prist от 20.05.2013, 10:52:46
Уговорили. Я Вам как-то показывал, как авторазмер примечания сделать. Плясать надо было от этого.
ActiveCell.AddComment "Hay, peoples!"
ActiveCell.Comment.Shape.OLEFormat.Object.Characters(1, 3).Font.Bold = True

Я знал, что не перевелись в VBA еще богатыри :)
Я так понимаю, что в "Characters(1, 3)" 1 это стартовая позиция, а 3 кол-во символов?
А если я не знаю количества символов в тексте, то надо сначала через Len(ActiveCell.Comment.Shape)?
Или можно как-то с конца выбрать нудно кол-во символов?


Юрий М

ЦитироватьА если я не знаю количества символов в тексте
Если даже Вы не знаете - откуда программа может это знать? ))

Niff-Nif

Цитата: Юрий М от 20.05.2013, 11:30:27
ЦитироватьА если я не знаю количества символов в тексте
Если даже Вы не знаете - откуда программа может это знать? ))
Юрий, ну так я и написал возможный вариант Len(ActiveCell.Comment.Shape), просто не уверен в правильности синтаксиса.

Юрий М

Не уверены? А проверить нет абсолютно никакой возможности? И зачем длина строки?

Дмитрий Щербаков(The_Prist)

Len(ActiveCell.Comment.Shape) - это какая-то хрень. Т.к. Len возвращает кол-во символов строки, т.е. применяется для типов данных String. Shape же - объект(тип Object). Надо хотя бы так: Len(ActiveCell.Comment.Shape.OLEFormat.Object.text)
Но если хотите весь текст сделать жирным достаточно сделать так:
ActiveCell.Comment.Shape.OLEFormat.Object.Font.Bold = Trueи ничего не выдумывать с Characters.

Если же только определенный текст внутри комментария - необходимо хотя бы знать как понять какой именно текст. Для поиска позиции внутри текста используйте InStr.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...

Юрий М

Дим, автор сам не знает, какой текст нужно выделить))

Niff-Nif

Юрий, Мне нужно выделить жирным последние 6 символов в последней строке комментария, для этого и думал определять длину данного коммента.

Юрий М

Тогда пробуем так:Sub TestComment()
Dim Txt As String, StartPos As Integer, Numbers As Integer
    Txt = "Hay, peoples!"
    Numbers = 6 'Сколько символов делать жирным
    StartPos = Len(Txt) - Numbers + 1 'С какого символа начать
    ActiveCell.AddComment Txt
    ActiveCell.Comment.Shape.OLEFormat.Object.Characters(StartPos, Numbers).Font.Bold = True
End Sub

Дмитрий Щербаков(The_Prist)

Цитата: Niff-Nif от 20.05.2013, 13:06:46
Мне нужно выделить жирным последние 6 символов в последней строке комментария, для этого и думал определять длину данного коммента.
Ну вот почему сразу об этом не написать?
Dim sTxt As String
sTxt = ActiveCell.Comment.Shape.OLEFormat.Object.Text
ActiveCell.Comment.Shape.OLEFormat.Object.Characters(Len(sTxt) - 5, 6).Font.Bold = True
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...

Niff-Nif


Яндекс.Метрика Рейтинг@Mail.ru