Excel样式类别

时间:2015-04-20 10:23:50

标签: excel

是否可以在Excel 2010中管理新的样式类别,即重命名,删除和创建新类别?

我可以为类别添加样式但没有选项: ActiveWorkbook.Styles.Add名称:="样式1"

我可以删除一个样式但没有类别选项: ActiveWorkbook.Styles("样式1")。删除

1 个答案:

答案 0 :(得分:0)

样式属于Workbook对象。在屏幕上,您将看到它们分组为"主题单元格样式","好,坏,中立"等等。通过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