Готовые макросы в vba excel, Миронов Глава Макросы 9
Скачать 1.35 Mb.
|
Скрытие нескольких столбцовSub HideCollumns() Columns("E:F").Hidden = True End Sub Скрытие строки по имени ячейкиSub HideCell() Range("Секрет").EntireRow.Hidden = True End Sub Скрытие нескольких строк по адресам ячеекSub HideCell() Range("B3:D4").EntireRow.Hidden = True End Sub Скрытие столбца по имени ячейкиSub HideCell() Range("Секрет").EntireColumn.Hidden = True End Sub Скрытие нескольких столбцов по адресам ячеекSub HideCell() Range("C2:D5").EntireColumn.Hidden = True End Sub Мигание ячейкиSub BlinkingCell() Static intCalls As Integer ' Счетчик количества миганий ' Если ячейка мигала менее 10 раз, то изменим _ в очередной раз ее цвет If intCalls < 10 Then intCalls = intCalls + 1 ' Определение, какой цвет необходимо установить If Range("A1").Interior.Color <> RGB(255, 0, 0) Then ' Цвет ячейки не красный, так что теперь назначим _ именно красный цвет Range("A1").Interior.Color = RGB(255, 0, 0) Else ' Назначим ячейке зеленый цвет Range("A1").Interior.Color = RGB(0, 255, 0) End If ' Эту процедуру необходимо вызвать через 5 секунд Application.OnTime Now + TimeValue("00:00:05"), "BlinkingCell" Else ' Хватит мигать Range("A1").Interior.ColorIndex = xlNone intCalls = 0 End If End Sub Глава 4. Работа с примечаниямиВывод на экран всех примечаний рабочего листаSub ShowComments() Dim cell As Range Dim rgCells As Range ' Получение всех ячеек с примечаниями Set rgCells = Selection.SpecialCells(xlComments) If rgCells Is Nothing Then ' Примечаний нет Exit Sub End If ' Проходим по всем ячейкам диапазона For Each cell In rgCells ' Вывод примечаний в соседнюю ячейку cell.Next.Value = cell.Comment.Text Next End Sub Функция извлечения комментарияFunction GetCommentText(rCommentCell As Range) Dim strGotIt As String On Error Resume Next strGotIt = WorksheetFunction.Clean _ (rCommentCell.Comment.Text) GetCommentText = strGotIt On Error GoTo 0 End Function вставить в модуль эксель Список примечаний защищенных листовSub ShowComments1() Dim cell As Range Dim strFirstAddress As String Dim strComments As String ' Получаем все ячейки выделения, в которых есть комментарий Set cell = Selection.Find("*", LookIn:=xlComments) If Not cell Is Nothing Then ' Сохранение адреса первой найденной ячейки _ (для предотвращения зацикливания поиска) strFirstAddress = cell.Address Do ' Добавление текста примечания в выходную строку strComments = strComments & "Комментарий: " & _ cell.Comment.Text & Chr(13) ' Продолжение поиска Set cell = Selection.FindNext(cell) Loop While Not cell Is Nothing And _ cell.Address <> strFirstAddress End If If strComments <> "" Then ' Отображение окна с текстом примечаний MsgBox strComments Else MsgBox "В выделенной ячейке/ячейках комментариев нет" End If End Sub Перечень примечаний в отдельном списке_1Sub ListOfComments() Dim cell As Range Dim rgCells As Range Dim intRow As Integer ' Получение всех ячеек с примечаниями On Error Resume Next Set rgCells = Selection.SpecialCells(xlComments) If rgCells Is Nothing Then ' Примечаний нет Exit Sub End If ' Проходим по всем ячейкам диапазона For Each cell In rgCells ' Вывод примечаний в ячейку столбца "C" intRow = intRow + 1 Cells(intRow, 3) = cell.Comment.Text Next End Sub Перечень примечаний в отдельном списке_2Sub ListOfComments1() Dim cell As Range Dim strFirstAddress As String Dim intRow As Integer ' Получение всех ячеек выделения, в которых есть примечания Set cell = Cells.Find("*", LookIn:=xlComments) If Not cell Is Nothing Then ' Сохранение адреса первой найденной ячейки _ (для предотвращения зацикливания поиска) strFirstAddress = cell.Address Do ' Вывод текста в столбец "C" 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 |