Скрыть полные строки или столбцы
Вы можете скрыть полные строки или столбцы, например, так:
Worksheet(...).Range(...).EntireRow.Hidden = True
Worksheet(...).Range(...).EntireColumn.Hidden = True
Вы также можете группировать строки или столбцы и устанавливать уровень структуры, чтобы скрыть их:
Worksheet(...).Range(...).EntireRow.Group
Worksheet(...).Outline.ShowLevels RowLevels:=1
Одна ячейка не может быть скрыта (она может быть только удалена, но это может переместить другие ячейки под ней).
Скрыть части ячейки
К сожалению, вы можете не скрыть некоторые символы в ячейке, как в Microsoft Word, с помощью Font.Hidden
.
Но с помощью следующего кода вы можете изменить все синие символы на очень маленькие белые.
Поскольку существует много разных «синих» цветов (не только RGB (0,0,255)), мой код проверяет, выше ли синяя часть цвета, чем красная и зеленая части.
Private Sub ChangeBlueTextToWhiteText()
Dim ws As Worksheet
Dim i As Integer
Dim c As Range
Dim currentColor As Long
Dim r As Byte, g As Byte, b As Byte
Set ws = ActiveSheet
For Each c In ws.UsedRange.Cells
If c.Characters.Count > 0 Then
For i = 1 To c.Characters.Count
currentColor = c.Characters(i, 1).Font.Color
If currentColor < 0 Then currentColor = &H1000000 - currentColor
r = currentColor Mod 256 ' red part
g = currentColor \ 256 Mod 256 ' green part
b = currentColor \ (2 ^ 16) Mod 256 ' blue part
If b > r And b > g Then ' if blue part is largest, then it's kinda "blue"
c.Characters(i, 1).Font.Color = vbWhite
End If
Next i
End If
Next c
Set ws = Nothing
End Sub
Если вы хотите, чтобы белые символы были как можно более узкими, вы можете дополнительно выбрать узкий шрифт и маленький размер шрифта, например:
c.Characters(i, 1).Font.Name = "Arial Narrow"
c.Characters(i, 1).Font.Size = 1
c.Characters(i, 1).Font.Subscript = True