C. 自定义 think-cell

本章将描述如何自定义 think-cell,即如何更改默认颜色和其他默认属性;这是通过 think-cell 的样式文件完成的,前四节中将讨论这些内容。

第五节设置默认的议程幻灯片布局将说明如何创建自定义议程幻灯片布局,第六节 功能区自定义将说明如何使用 PowerPoint 的功能区自定义选项对 think-cell 的用户界面进行自定义。

可以使用样式文件更改以下属性:

  • 可用颜色与图案列表(请参阅 颜色与填充)。

    可用于自定义的颜色与图案列表.
  • 可用配色方案列表(请参阅 配色方案)。

    可用于自定义的配色方案列表.
  • Harvey ball 与复选框的颜色(请参阅 复选框和 Harvey Ball)。

    可用于自定义的 Harvey ball 与复选框的颜色.
  • 预定义用于放置图表的幻灯片布局(请参阅 预定义用于放置图表的幻灯片布局)。当选择相关类型的图表插入或在幻灯片上拖动时,这些幻灯片布局将以缩略图的形式显示在幻灯片视图的左上角,点击缩略图中的一个矩形区域或将图表拖动到该区域将放置具有该位置和大小的图表。这可与幻灯片模板一起使用,以确保图表的定位一致。

    显示用于插入图表的预定义布局的幻灯片缩略图.
  • 用于在甘特图中使用会计日历的选项(请参阅 标尺显示)。

    已启用“会计年度”的甘特图“标尺”菜单.
  • 可用线型的列表(请参阅 线型)。

  • 折线图与散点图的可用标记列表(请参阅 标记形状)。

前三节将对创建和加载样式文件进行描述,并说明如何将其部署在组织中。在任何情况下都需要理解这些任务。此后,您可以遵循 样式文件教程 创建自己的样式文件,也可以查阅 样式文件格式 中的格式引用。

C.1
创建 think-cell 样式
C.2
加载样式文件
C.3
部署 think-cell 样式
C.4
样式文件教程
C.5
设置默认的议程幻灯片布局
C.6
功能区自定义

C.1 创建 think-cell 样式

可以使用任何文本编辑器对现有样式文件进行简单修改。应该使用专用的 XML 编辑器创建新的 think-cell 样式文件。它会自动检查是否存在错误,并提供如何消除错误的建议,从而为您提供支持。我们对此类编辑器的建议和其设置提示的描述位于

KB0191:针对编辑 think-cell 样式文件建议的设置

专用的 XML 编辑器通常会突出显示文档中的错误,使用诸如 Ctrl-空格等键盘快捷键,您可以触发自动完成:编辑器将提供适用于当前环境(文本游标的位置)的标记、属性和值的选择。若将鼠标移动到突出显示的错误上,会显示包含错误详细说明的工具提示。

think-cell 随附了几个示例样式文件,您可以在 think-cell 安装目录的子目录 styles 中找到这些文件。首先,请找到安装目录的位置。在单击 工具菜单图标. 工具 菜单中的关于时显示。

查找安装文件夹.

打开此目录并转到子目录 styles,例如,

C:\Program Files (x86)\think-cell\styles

打开文件 generic style.xml。该文件应类似于如下所示:

Visual Studio Express for Web 中加载的默认样式文件.

编辑器会自动检查您的文件是否存在错误。您可以单击视图 > 错误列表以显示错误列表:

Visual Studio Express for Web 中的空错误列表窗口.

请确保在保存所编辑的样式文件之前,没有指示的警告或错误。

当然,支持 XML 的其他任何编辑器也有效。需要以 .xml 扩展名保存文件。

C.2 加载样式文件

若要加载样式文件,请从工具菜单图标 工具菜单图标. 菜单中选择加载样式文件… 。在对话框中,导航到样式文件的位置,选择文件,然后单击打开。它用于当前演示文稿中的任何新图表。

例如,从 think-cell 安装目录中的 styles 目录加载示例样式文件 example_style_complex.xml 后,颜色与配色方案属性控件将包括自定义的项。

加载复杂示例样式后已更改的颜色和配色方案列表.

若希望在现有图表中应用样式的颜色或配色方案,需要手动执行该操作。

C.2.1 通过编程方式加载样式文件

您也可以通过编程方式加载样式文件,例如在新的或更新的模板准备工作流程中执行此操作。凭借 API 调用的更高精度,还可以在加载样式文件时指定更多选项,例如针对特定的自定义布局,甚至将样式限制在自定义布局的矩形区域,以及将它们从自定义布局中删除,并检查加载到母版或自定义布局的样式名称。

think-cell 的 API 已集成到 Office Automation 模型中,因此可以通过能对 Office 编程的任何语言(例如 Visual Basic for Applications (VBA) 或 C#)进行访问。请查阅 入门 了解详细说明。

假设您的自定义布局在幻灯片的左右两侧使用不同的背景色。右侧与演示文稿其余部分的背景相匹配,因此在这里应用母板中的样式集并无不妥。然而,左侧使用了不同的背景,对此适合使用修改后的样式。在此情况下,您将使用 LoadStyle 为整个演示文稿设置一个样式文件。接下来,您将使用 LoadStyleForRegion 仅为相应自定义布局的左侧设置不同的样式。

以下部分将描述可用的 API 调用。它们是 think-cell 加载项对象在 PowerPoint 中的方法。

C.2.2 LoadStyle

C.2.2.1 签名

VBA
tcPpAddIn.LoadStyle( _ 
    CustomLayoutOrMaster As Object, _ 
    FileName As String 
)
C#
void tcPpAddIn.LoadStyle(
    object CustomLayoutOrMaster,
    string FileName
);

C.2.2.2 描述

此函数可将 FileName 的样式文件中包含的样式加载到母板或通过参数 CustomLayoutOrMaster 指定的自定义布局中。

CustomLayoutOrMaster 必须为 CustomLayoutMaster

当应用到设置了区域样式的自定义布局时(请参阅 LoadStyleForRegion),该区域样式将被删除。这意味着您需要加载应使用此函数应用到幻灯片其余部分的样式,之后才能加载限制在某个区域的样式。

在应用到母版时,加载到该区域且无限制的母版中包含的自定义布局的任何样式都将被删除。这意味着您在使用此函数加载应用到特定自定义布局的样式之前,需要将应该用于没有特定样式的自定义布局的样式加载到母版中。

C.2.2.3 示例

若要使用此示例,请将以下代码添加到 PowerPoint 中的模块(请参阅 Visual Basic for Applications 了解详细信息)。

Option Explicit
	
Sub LoadStyle_Sample() 

	' Get the think-cell add-in object 
	Dim tcPpAddIn As Object 
	Set tcPpAddIn = Application.COMAddIns("thinkcell.addin").Object 

	Dim master As Master
	Set master = Application.ActivePresentation.Designs(1).SlideMaster

	Dim style As String
	style = "C:\some\path\styles\style.xml"

	Call tcPpAddIn.LoadStyle(master, style)
End Sub

C.2.3 LoadStyleForRegion

C.2.3.1 签名

VBA
tcPpAddIn.LoadStyleForRegion( _ 
	CustomLayout As PowerPoint.CustomLayout, _ 
	FileName As String, _
	Left as Single, _
	Top as Single, _
	Width as Single, _
	Height as Single _
)
C#
void tcPpAddIn.LoadStyleForRegion(
	PowerPoint.CustomLayout CustomLayout,
	string FileName,
	float Left,
	float Top,
	float Width,
	float Height
);

C.2.3.2 描述

此函数可将 FileName 中的样式文件加载到自定义布局 CustomLayout 中,并将样式限制在由 LeftTopWidthHeight 指定的区域。在幻灯片的其余部分上,加载到母版的样式,或之前使用 LoadStyle 加载到自定义布局的样式适用。

参数 LeftTopWidthHeight 由 PowerPoint 点指定。LeftTop 分别指定从自定义布局的左和上边缘到该区域的左和上边缘的距离。通常,您会将其设置为幻灯片总高度和总宽度的分数。例如,对于覆盖自定义布局右侧三分之二的区域,您可以设置

Left = CustomLayout.Width / 3
Top = 0
Width = CustomLayout.Width * 2 / 3
Height = CustomLayout.Height

您也可以手动将形状添加到幻灯片或自定义布局中,以编程方式查询其属性 LeftTopWidthHeight,并将这些值与 LoadStyleForRegion 搭配使用,以便将样式限制在该形状所覆盖的区域。

think-cell 支持每个自定义布局最多有两种样式。一种样式使用 LoadStyle 进行设置,涵盖不限制在某区域的所有内容,另一种样式使用 LoadStyleForRegion 进行设置。

C.2.3.3 示例

若要使用此示例,请将以下代码添加到 PowerPoint 中的模块(请参阅 Visual Basic for Applications 了解详细信息)。

Option Explicit
	
Sub LoadStyleForRegion_Sample() 

	' Get the think-cell add-in object 
	Dim tcPpAddIn As Object 
	Set tcPpAddIn = Application.COMAddIns("thinkcell.addin").Object 

	Dim layout As CustomLayout
	Set layout = Application.ActivePresentation.Designs(1).SlideMaster.CustomLayouts(2)

	' Define a region covering the left half of the custom layout
	Dim left, top, width, height As Single
	left = 0
	top = 0
	width = layout.Width / 2
	height = layout.Height

	Dim style As String
	style = "C:\some\path\styles\style.xml"

	Call tcPpAddIn.LoadStyleForRegion(layout, style, left, top, width, height)
End Sub

C.2.4 RemoveStyles

C.2.4.1 签名

VBA
tcPpAddIn.RemoveStyles( _ 
	CustomLayout As PowerPoint.CustomLayout _ 
)
C#
void tcPpAddIn.RemoveStyles(
	PowerPoint.CustomLayout CustomLayout
);

C.2.4.2 描述

此函数可删除自定义布局 CustomLayout 中的所有样式。然后将应用加载到母板中的样式。可能存在以下情况:已将一个样式加载到自定义布局,而将另一个样式限制在自定义布局的特定区域。由于 RemoveStyles 会删除所有样式,因此这两种样式都会遭删除。无法删除加载到母板中的样式,因为始终需要存在与母板关联的有效样式。可以使用其他样式文件将其覆盖。

C.2.4.3 示例

若要使用此示例,请将以下代码添加到 PowerPoint 中的模块(请参阅 Visual Basic for Applications 了解详细信息)。

Option Explicit
	
Sub RemoveStyles_Sample() 

	' Get the think-cell add-in object 
	Dim tcPpAddIn As Object 
	Set tcPpAddIn = Application.COMAddIns("thinkcell.addin").Object 

	Dim layout As CustomLayout
	Set layout = Application.ActivePresentation.Designs(1).SlideMaster.CustomLayouts(2)

	Call tcPpAddIn.RemoveStyles(layout)
End Sub

C.2.5 GetStyleName

在 think-cell 13 和更新版本中受支持。

C.2.5.1 签名

VBA
tcPpAddIn.GetStyleName( _ 
    CustomLayoutOrMaster As Object _ 
) As String
C#
string tcPpAddIn.GetStyleName(
    object CustomLayoutOrMaster
);

C.2.5.2 描述

此函数返回加载到 CustomLayoutMaster 的样式名称CustomLayoutOrMaster。这是对应的样式文件的 <style> 元素的 name 属性中指定的同一名称(请参阅 样式)。

当没有样式加载到 CustomLayoutOrMaster 时,它会返回空字符串。注意,当 think-cell 处于活动状态时,母版始终有加载样式,且样式名称不能为空。

如果为 CustomLayout 返回了名称,则它是用 LoadStyle 加载的样式名称,不是用 LoadStyleForRegion 加载的样式名称(若有)。

C.2.5.3 示例

若要使用此示例,请将以下代码添加到 PowerPoint 中的模块(请参阅 Visual Basic for Applications 了解详细信息)。

Option Explicit

Sub GetStyleName_Sample()

    ' Get the think-cell add-in object 
    Dim tcPpAddIn As Object
    Set tcPpAddIn = Application.COMAddIns("thinkcell.addin").Object
    
    ' Get the Master of the first slide of the current presentation
    Dim master As Master
    Set master = Application.ActivePresentation.Slides(1).Master
    
    ' Print the name of the style loaded to the debug console
    Dim name As String
    name = tcPpAddIn.GetStyleName(master)
    Debug.Print name
End Sub

C.3 部署 think-cell 样式

think-cell 工具栏工具菜单图标 工具菜单图标. 菜单中的加载样式文件… 将样式文件加载到当前演示文稿的母版幻灯片中。将演示文稿作为 PowerPoint 模板进行分发时,也会以隐含方式分发 think-cell 样式。在 PowerPoint 模板之间进行切换,即可完成在样式之间的切换。不需要为个别用户提供 think-cell 样式文件。

我们建议您将 think-cell 样式与 PowerPoint 模板一同分发。通常,执行您的公司设计需要这两者,将其共同部署是用户最简单的选择。

如果无法按照我们的建议将 think-cell 样式部署为 PowerPoint 模板的一部分,则可以使用 defaultstyle 配置参数指定默认样式文件(请参阅 配置参数)。参数值是有效样式文件的路径名。路径可以是绝对路径或 think-cell 安装目录 styles 子目录的相对路径。

默认样式文件将在两种情况下自动加载:

  1. 创建新的演示文稿时。
  2. 打开当前不含样式的现有演示文稿时。保存此演示文稿并随后再次打开时,它将包含样式,因此不会再次加载默认样式。

自动加载的默认样式文件在可用和最近加载的样式文件列表中以附加(默认)形式突出显示:

使用可用的和最近使用的样式列表加载样式文件菜单命令.

C.4 样式文件教程

在 think-cell 安装目录(通常是 C:\Program Files\think-cell)内的子目录 styles 中,可以找到样式文件 generic style.xml。此样式会反映安装后未加载样式时直接可以使用的颜色与配色方案。因此:

  1. 请创建 generic style.xml 的副本,然后将该副本加载到 XML 编辑器(若要选择合适的编辑器,请参阅 创建 think-cell 样式)。
  2. 在以下步骤中,从上到下浏览进行所述更改的文件。
  3. fillLst 元素内的列表中删除不需要的颜色。您将查找与 think-cell(请参阅solidFill)内所显示颜色列表中的项对应的 pattFillseparator颜色与填充 元素。例如,若要删除 solidFill 元素,请删除打开的标记 <solidFill ...> 和关闭的标记 </solidFill> 之间的任何项(包含这两个标记)。
  4. (可选)为您自己的颜色创建新的部分。为此,请在颜色列表中的适当位置写入 separator,以插入 <separator/> 标记。此外,您可以为了自己方便而随意使用换行符、缩进和空行来设置样式文件中的 XML 代码结构。空格与换行符对产生的样式没有任何影响。
  5. 使用 solidFill 元素添加您自己的颜色。您的颜色需要有名称,以及红色、绿色和蓝色通道的值。您应该使用规范文件中提供的这些值,以表明公司的企业身份。若颜色的名称是“浅绿”,红色、绿色和蓝色通道的值分别是 17025542,则类似于如下所示:
    <solidFill name="Light Green"> 
      <sdrgbClr r="170" g="255" b="42"/> 
    </solidFill>
    
  6. fillSchemeLst 元素内的列表中删除不需要的配色方案。您将查找与 think-cell(请参阅 fillScheme)内所显示配色方案列表中的项对应的 配色方案 元素。若要删除 fillScheme 元素,请删除打开的标记 <fillScheme ...> 和关闭的标记 </fillScheme> 之间的任何项(包含这两个标记)。
  7. (可选)修改现有的配色方案。您可以
    • 删除相应的 fillRef 元素,以删除方案中的一或多种颜色,或
    • fillRef 元素重新排序,以便对现有颜色重新排序,或
    • fillRef 元素内的适当位置添加 fillScheme 元素,以便纳入您自己的其中一种颜色。若您希望纳入以上定义的颜色,请添加以下行:
      <fillRef name="Light Green"/>
      

    请注意,您只能使用以上 fillLst 部分(请参阅步骤 3-5)中已定义的颜色。尤其是,若您已删除步骤 3 中的颜色,必须也删除配色方案中的这些颜色。

  8. (可选)使用 fillScheme 元素创建新的配色方案。您的方案需要有名称(例如“绿色方案”)、在所需属性 fillSchemeLst 中将由其他系列使用的颜色参考,以及作为 fillRef 元素的颜色参考列表。若您除了以上“浅绿”之外,还定义了“橙色”、“深绿”和“中绿”颜色,则配色方案类似于如下所示:
    <fillScheme name="Green Scheme" fillRefOtherSeries="Orange"> 
      <fillRef name="Dark Green"/> 
      <fillRef name="Medium Green"/> 
      <fillRef name="Light Green"/> 
    </fillScheme>
    
  9. 检查 fillSchemeRefDefault 元素的内容。name 属性会指定在插入新图表时默认使用的配色方案。若您希望将自己的配色方案设为新的默认项,请将代码修改为类似于如下所示:
    <fillSchemeRefDefault name="Green scheme"/>
    
  10. 保存修改后的样式文件,对其进行加载(请参阅加载样式文件)和测试。
  11. 按照部署 think-cell 样式中所述在您的组织中部署新样式。尤其是,不需要向您的同事发送 XML 文件,但是您当然应该保留该文件供参考。

C.5 设置默认的议程幻灯片布局

think-cell 议程可以在您的演示文稿中使用特定的自定义布局,以定义议程幻灯片上的议程位置和其他形状(例如,标头或图片)。通过将此自定义布局添加到模板,您可为整个组织定义这些设置。

  1. 在 PowerPoint 幻灯片母版视图中,创建新的自定义布局。通常,您会复制现有自定义布局中与 think-cell 议程幻灯片所需外观最相符的其中一个布局。
  2. 将新的自定义布局命名为“think-cell 议程”。think-cell 只会在名称精确相符(区分大小写)时才会使用此自定义布局。
  3. 仅将每张议程幻灯片上的显示与此类似的形状包括在“think-cell 议程”自定义布局中。
  4. 编辑自定义布局时,从 image. 元素菜单中选择议程占位符。只有在编辑自定义布局时,才能使用此元素。它会在当前自定义布局中添加议程占位符。
  5. 按照中所述选择议程占位符的位置放置议程

若在当前演示文稿中找到以此方式创建且名为“think-cell 议程”的自定义布局, image. 章节会使用此自定义布局(包括其上的任何附加形状),并将议程放置在预设位置。

C.6 功能区自定义

think-cell 会通过功能区命令提供其所有功能,可以自定义这些命令,就像通过文件选项自定义功能区自定义 PowerPoint 自己的命令一样。如需有关如何实现这一点的一般信息,请查看这里

您可以在自定义功能区对话框中选择从以下选项中选择命令:下拉菜单中的主选项卡,然后转到 think-cell 命令think-cell 命令,以查找所有可用 think-cell 命令的列表。

PowerPoint 功能区自定义对话框.

注释:由于 Office 存在限制,您无法在内置组中添加或删除命令。因此,若要向内置选项卡添加命令,您必须单击新建组,以便在选项卡中创建自定义组。内置的插入设计审阅选项卡中的 think-cell 组在这方面的行为与内置组类似。您可以随意采用完整的内置组(包括刚才提到的 think-cell 组),并在任意选项卡中添加或删除它们。

注释:think-cell 命令选项卡和组只是方便访问所有 think-cell 功能区元素的容器。它们本身无法放置在功能区,在自定义功能区对话框右侧选中或取消选中它们并无影响。

也可以在安装期间修改主 think-cell 功能区组(默认情况下是插入think-cell)的位置。如需有关如何实现这一点的说明,请参阅功能区

分享