Выбор цветов темы в Excel * без * с использованием значений RGB? - PullRequest
0 голосов
/ 23 мая 2018

Мне дали лист, и я пытаюсь соответствовать очень темно-синему цвету, который они выбрали.

Когда я нажимаю на треугольник рядом с "значком заливки" на главной полосе, чтобы вызвать палитру цветовЯ вижу второй цвет снизу в третьей колонке, синий.Он называется «Темно-синий, текст 2, на 25% темнее».

Я бы хотел сделать это в VBA и использовать английские термины для ясности.Я пробовал разные веб-страницы с названиями цветов VBA, но его там нет.Есть ли способ выбрать это, не прибегая к числовому RGB или подобному?

Ответы [ 3 ]

0 голосов
/ 23 мая 2018

Я думаю, вы должны использовать свойства:

   .ThemeColor = xlThemeColorAccent5 'name of the theme
   .TintAndShade = 0.25 'darkness (1 - no dark; -1 - max dark)
0 голосов
/ 19 декабря 2018
Sub DemoThemecolors()
   Dim rng As Range
   Dim n As Integer, m As Integer
   Dim arrNames
   Dim arrDescriptions
   Dim arrValues
   arrNames = Array("xlThemeColorAccent1", "xlThemeColorAccent2", "xlThemeColorAccent3", "xlThemeColorAccent4", "xlThemeColorAccent5", "xlThemeColorAccent6", _
                    "xlThemeColorDark1", "xlThemeColorDark2", "xlThemeColorFollowedHyperlink", "xlThemeColorHyperlink", "xlThemeColorLight1", "xlThemeColorLight2")
   arrDescriptions = Array("Accent1", "Accent2", "Accent3", "Accent4", "Accent5", "Accent6", "Dark1", "Dark2", "Followed hyperlink", "Hyperlink", "Light1", "Light2")
   arrValues = Array(5, 6, 7, 8, 9, 10, 1, 3, 12, 11, 2, 4)

   ActiveWorkbook.Worksheets.Add
   Set rng = Cells(2, 7)
   rng(0, 4).Value = "TintAndShade"
   rng(1, 4).Value = 0
   For m = 1 To 9
      rng(1, m + 4).Value = 0.1 * m
   Next m
   rng(1, 1) = "ThemeColor Name"
   rng(1, 2).Value = "Value"
   rng(1, 3).Value = "Description"

   For n = 1 To 12
      rng(n + 1, 1).Value = arrNames(n)
      rng(n + 1, 2).Value = arrValues(n)
      rng(n + 1, 3).Value = arrDescriptions(n)
      rng(n + 1, 4).Interior.ThemeColor = arrValues(n)
      For m = 1 To 9
         With rng(n + 1, m + 4).Interior
            .ThemeColor = arrValues(n)
            .TintAndShade = 0.1 * m
         End With
      Next m
   Next n
    Range("G1:S2").Font.Bold = True
    Columns("G:I").EntireColumn.AutoFit
End Sub

В случае, если вам интересно, почему все встроенные Темы показывают темные цвета для Light1 / 2 и светлые цвета для Dark1 / 2 - это, вероятно, ошибка, или как MS назвал бы это;это «особенность» в Excel, и в Word тоже.В Powerpoint все наоборот, как и следовало ожидать.

0 голосов
/ 23 мая 2018

Отметьте это, чтобы увидеть цвет стилей:

Sub TestMe()

    Dim st As Style
    Dim cnt As Long: cnt = 1

    For Each st In ThisWorkbook.Styles
        Cells(cnt, 1).Interior.ColorIndex = cnt
        Cells(cnt, 2) = cnt
        Cells(cnt, 3) = st.Name
        Cells(cnt, 4) = st.NameLocal
        cnt = cnt + 1
    Next st

End Sub

Возвращая это:

enter image description here

Если вы хотитеиспользовать определенный стиль для определенного выбора:

selection.interior.colorindex = ThisWorkbook.Styles("40 % - Akzent3").Interior.ColorIndex
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...