Извлечение текста комментариев в ячейку

Извлечение текста комментариев в ячейку

Добрый день, товарищи! Сегодня поговорим о том, как работать с комментариями в ячейке.

Все мы знаем, что примечание добавляется очень просто - щелчок на ячейке правой кнопкой мыши и выбор пункта "Добавить примечание".

Как быть в случае если текст уже есть (на листе,  в файле) и его нужно добавить как комментарий или наоборот - извлечь текст комментариев и поместить их в ячейку на листе?

Добавление комментариев по условию мы рассматривали в этой статье.

Добавление комментария в ячейку с помощью Vba.

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

Sub add_comment()
With Worksheets(1).Range("a2").AddComment
.Visible = False
.Text "просмотрел " & Date
End With
End Sub

Что происходит в этом случае - на листе 1 в диапазоне ячеек A2 добавляется комментарий, далее зовутся свойства Visible (комментарий будет скрыт до наведения), Text собственно сам текст примечания, параметр Date проставит текущую дату.

После выполнения макроса получится вот это.

Извлечение текста комментариев в ячейку

 

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

Sub add_comments()
For xNum = 1 To 10
Range("A" & xNum).AddComment
Range("A" & xNum).Comment.Text Text:="Комментарий " & xNum
Next
End Sub

 

Этот код добавит примечание "Комментарий" ко всем ячейкам от А1 до А10.

 

Извлечение текста комментариев в ячейку

 

Извлечение текста комментария в ячейку

Для извлечения текста комментария в ячейку воспользуемся пользовательской функцией.

Function GetComment(rCell As Range) As String
GetComment = rCell.Comment.Text
End Function

Всё максимально просто - объявили функцию, указали свойство, присвоили переменной значение содержащихся в ячейке данных.

Извлечение текста комментариев в ячейку

 

Текст ячейки в комментарий

Sub CellTextToComment()
 Dim c As Range
 If TypeName(Selection) <> "Range" Then Exit Sub
 For Each c In Selection
 c.Comment.Text Text:=c.Text
 Next c
End Sub

Извлечение текста комментариев в ячейку

 

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

Конечно, код можно усовершенствовать - дерзайте! Если что - вот тут хорошая статья, может вам пригодиться.

Всем удачи!

Автор записи: Иван

Добавить комментарий

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.