equipment66, для ячейки — никак нельзя, потому что скрывать можно только столбцы или строки целиком:
Option Explicit
Sub Sample()
Dim objRange As Range
For Each objRange In ActiveSheet.UsedRange
Debug.Print objRange.Address, vbTab, objRange.Columns.Item(1).Hidden, objRange.Rows.Item(1).Hidden
Next objRange
End Sub
Но Вы можете написать свою функцию, которая будет проверять, находится ли конкретная ячейка в скрытом столбце или строке (если в переданном диапазоне больше одной ячейки — то первая ячейка диапазона) и возвращать булево значение, например:
Option Explicit
Sub Sample2()
Debug.Print IsHiddenCell(ActiveSheet.Range("$B$10"))
Debug.Print IsHiddenCell(ActiveSheet.Range("$C$10"))
Debug.Print IsHiddenCell(ActiveSheet.Range("$C$11"))
' И даже:
Debug.Print IsHiddenCell(ActiveSheet.Range("$C$10:$D$20"))
End Sub
Function IsHiddenCell(objRange As Range)
If Not objRange Is Nothing Then
With objRange.Item(1)
If .Columns.Item(1).Hidden Or .Rows.Item(1).Hidden Then
IsHiddenCell = True
Else
IsHiddenCell = False
End If
End With
Else
IsHiddenCell = False
End If
End Function