Excel. Трюки и эффекты | страница 106
intRow = intRow + 1
Cells(intRow, 3) = cell.Comment.Text
' Продолжение поиска
Set cell = Cells.FindNext(cell)
Loop While Not cell Is Nothing And _
cell.Address <> strFirstAddress
End If
End Sub
Следует отметить, что столбец С взят только для примера.
Несколько трюков в одном примере
В данном подразделе мы объединим рассмотренные выше трюки в один пример, а также несколько расширим его дополнительной возможностью. Иначе говоря, реализовав данный пример, можно будет быстро получить следующие результаты: подсчитать количество примечаний в текущей рабочей книге, выделить ячейки с примечаниями, отобразить сразу все примечания, вывести список примечаний текущей рабочей книги в отдельную книгу Excel и выбрать цветовую палитру для примечаний.
В первую очередь необходимо написать код, который приведен в листинге 3.39, и поместить его в редакторе VBA в стандартный модуль.
Sub CountOfComments()
Dim intCommentCount As Integer
' Получение и отображение количества примечаний
intCommentCount = ActiveSheet.Comments.Count
If intCommentCount = 0 Then
MsgBox «Текущая рабочая книга не содержит примечаний.», _
vbInformation
Else
MsgBox "В текущей рабочей книге содержится " &
intCommentCount _
& « комментариев.», vbInformation
End If
End Sub
Sub SelectComments()
' Выделение всех ячеек с примечаниями
Cells.SpecialCells(xlCellTypeComments).Select
End Sub
Sub ShowComments()
' Отображение всех примечаний
If Application.DisplayCommentIndicator =
xlCommentAndIndicator Then
Application.DisplayCommentIndicator = xlCommentIndicatorOnly
Else
Application.DisplayCommentIndicator = xlCommentAndIndicator
End If
End Sub
Sub ListOfCommentsToFile()
Dim rgCells As Range ' Ячейки с примечаниями
Dim intDefListCount As Integer ' Используется для временного _ хранения количества
листов в книге по умолчанию
Dim strSheet As String ' Имя анализируемого листа
Dim strWorkBook As String ' Имя книги с анализируемым
листом
Dim intRow As Integer
Dim cell As Range
' Получение ячеек с примечаниями
On Error Resume Next
Set rgCells = ActiveSheet.Cells.SpecialCells(xlComments)
On Error GoTo 0
' Если примечаний нет, то можно не продолжать
If rgCells Is Nothing Then
MsgBox «Текущая рабочая книга не содержит примечаний.», _
vbInformation
Exit Sub
End If
' Сохранение имен анализируемого листа и книги
strSheet = ActiveSheet.Name
strWorkBook = ActiveWorkbook.Name
' Создание отдельной книги с одним листом _
для отображения результатов
intDefListCount = Application.SheetsInNewWorkbook