Свойство Range.DisplayFormat (Excel)

Возвращает объект DisplayFormat , представляющий параметры отображения для указанного диапазона. Только для чтения.

Синтаксис

выражение. DisplayFormat

выражение: переменная, представляющая объект Range.

Возвращаемое значение

DisplayFormat

Примечания

На параметр DisplayFormat влияет условное форматирование, как показано в приведенном ниже коде. Оно добавляет условное форматирование в ячейку A1 на активном листе. При форматировании ячейка становится полужирной, цвет внутренней части изменяется на красный и добавляется узор в виде шашки.

Public Sub DemonstrateConditionalFormattingAffectsDisplayFormat()
    Dim inputArea As Range
    Set inputArea = ActiveSheet.Range("A1")
    
    Dim addedFormatCondition As FormatCondition
    Set addedFormatCondition = inputArea.FormatConditions.Add(xlExpression, Formula1:="=true")
    addedFormatCondition.Font.Bold = True
    addedFormatCondition.Interior.Color = XlRgbColor.rgbRed
    addedFormatCondition.Interior.Pattern = XlPattern.xlPatternChecker
    
    Debug.Print inputArea.Font.Bold 'False
    Debug.Print inputArea.Interior.Color 'XlRgbColor.rgbWhite
    Debug.Print inputArea.Interior.Pattern 'XlPattern.xlPatternNone
    
    Debug.Print inputArea.DisplayFormat.Font.Bold 'True
    Debug.Print inputArea.DisplayFormat.Interior.Color 'XlRgbColor.rgbRed
    Debug.Print inputArea.DisplayFormat.Interior.Pattern 'XlPattern.xlPatternChecker
End Sub

Обратите внимание, что свойство DisplayFormat не работает в пользовательских функциях (UDF). Например, для функции листа, возвращающей внутренний цвет ячейки, используется строка, подобная формуле: Range(n).DisplayFormat.Interior.ColorIndex. При выполнении функции листа она возвращает ошибку #VALUE!.

В другом примере нельзя использовать свойство DisplayFormat в функции листа для возврата параметров определенного диапазона. Однако DisplayFormat будет работать в функции, вызываемой из Visual Basic для приложений (VBA). Например, в следующей UDF:

Function getDisplayedColorIndex()
   getColorIndex = ActiveCell.DisplayFormat.Interior.ColorIndex
End Function

Вызов функции из листа следующим образом =getDisplayedColorIndex() возвращает ошибку #VALUE!. Таким образом, если условное форматирование применяется к диапазону, вернуть это значение с помощью UDF невозможно. Если применено условное форматирование, получите цветовой индекс для активной ячейки, вызвав панель действий в редакторе Visual Basic.

Если условное форматирование не применяется, используйте приведенную ниже функцию, чтобы вернуть индекс цвета для активной ячейки. Следующая функция работает либо на листе, либо на VBA.

Function getAppliedColorIndex()
   getColorIndex = ActiveCell.Interior.ColorIndex
End Function

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.