2015-04-20 2 views
0

Можно ли управлять новыми категориями стилей в Excel 2010, то есть переименовывать, удалять и создавать новые категории?Категория Excel категории

Я могу добавить стиль, но не вариант для категории: ActiveWorkbook.Styles.Add Name: = «Стиль 1»

я могу удалить стиль, но не вариант для категории: ActiveWorkbook.Styles ("Стиль 1 "). Удалить

ответ

0

Стили относятся к объекту рабочей книги. На экране вы увидите их сгруппированными в «Тематические стили ячеек», «Хорошо, Плохо, Нейтрально» и т. Д. С помощью объектной модели Excel у нас нет доступа к этим «именам групп», поэтому мы не можем их читать или писать.

Наилучшее приближение состоит в том, чтобы прочитать свойство .BuiltIn, например.

Sub StyleTest() 
Dim MyStyle As Style 

    Set MyStyle = Range("A1").Style 

    If MyStyle.BuiltIn Then 
     ' built in style 

    Else 
     ' custom style 

    End If   
End Sub 

Даже если вы дублируете встроенный стиль, скопированный стиль будет создан под категорией «Пользовательский».

Получите название стиля через его .Name или .Value. Однако это свойство только для чтения, поэтому переименование стиля скорее означает дублирование стиля под другим именем, а затем удаление оригинала

Дублирование стиля действительно означает «создание» нового стиля и копирование всех свойств из исходного стиля ... по частям ... к сожалению!

Изменить стиль, как, например

Sub CreateStyle() 
Dim MyStyle As Style 

    Set MyStyle = ActiveWorkbook.Styles.Add("Test") ' Note this will fail if style "Test" already exists 

    With MyStyle 
     .IncludeNumber = True 
     .IncludeFont = True 
     .IncludeAlignment = True 
     .IncludeBorder = True 
     .IncludePatterns = True 
     .IncludeProtection = False 
    End With 

    MyStyle.NumberFormat = "#.##0" 

    With MyStyle.Font 
     .Name = "Calibri" 
     .Size = 11 
     .Bold = False 
     .Italic = False 
     .Underline = xlUnderlineStyleNone 
     .Strikethrough = False 
     .ThemeColor = 6 
     .TintAndShade = -0.249946592608417 
     .ThemeFont = xlThemeFontMinor 
    End With 

    With MyStyle.Interior 
     .Pattern = xlSolid 
     .PatternColorIndex = 0 
     .ThemeColor = xlThemeColorAccent2 
     .TintAndShade = 0.599963377788629 
     .PatternTintAndShade = 0 
    End With 
End Sub 
+0

Майк, спасибо за ответ, очень полезно даже подтверждение об отсутствии доступа к категориям. Я работаю в основном в Word, и проблема не возникает, поскольку нет категорий. Это было бы не так уж плохо, если бы они не давали категории глупых имен. «Хорошее, плохое и нейтральное» звучит как спагетти «Запад» для меня! –

Смежные вопросы