您的位置:首页 > 其它

Microsoft Office 应用程序脚本编写提示和技巧(Excel中设置基本柱形图格式)

2006-05-09 10:53 585 查看
人们在初次尝试某件事情时总是认为它很不错,并且他们会有这样的想法:对,就是它,这件事太棒了,从今往后就干这个了。但是,当最初的激情冲动过去之后,许多人便开始怀疑这件事是否值得托付终身了。(如果您不相信,我们可以向您讲述一个“脚本编写兄弟”的经历,他在过去的 20 来年做过滑翔手、摩托车手、摩托艇冲浪手、船主、高山滑雪手、山地自行车手以及其他数不清的行当,他为此投入了巨资,最后他终于感到厌倦,决定去尝试一下别的事情。)生活原本如此:对于先前本以为是完美无缺的事物,过一会儿就能找出一大堆毛病。

呃,当然,这不包括“脚本编写夫妻”。(不然的话,要是他们当中有人正在阅读本文,那可就麻烦了。)

说这么多与 Microsoft Office 应用程序脚本编写有何相干?是这样,在以前的专栏中我们就使用 Microsoft Excel 创建图表和图形开始了一个新的系列,而且只用了短短一课向您展示了如何创建类似下面的图形:

objChart.ChartArea.Interior.ColorIndex = 1

[/code]
注意。要查看可显示所有颜色及其相应索引号的脚本,请单击此处

这就是您全部需要做的。想要将 PlotArea 的颜色设置为浅橙色吗?那么,就请继续试试以下的脚本:

objChart.PlotArea.Interior.ColorIndex = 40

想要更改 Walls、Floor 或任一 SeriesCollection 对象的颜色吗?只需将 Interior.ColorIndex 属性设置为所需的颜色即可。在本专栏的最后,我们将提供一个设置所有这些属性的脚本;只要您仔细阅读该脚本,便可以毫不费力地确定我们是何时以及如何执行诸如设置 Floor 对象背景颜色等操作的。

那么,为 PlotArea 添加边框又如何呢?正如您将会看到的那样,其难度只是更改背景颜色的二倍;我们需要一行代码来指定线宽(即线的粗度),还需要一行代码来设置 Border.ColorIndex 属性的值,仅此而已:

objChart.PlotArea.Border.Weight = 4
objChart.PlotArea.Border.ColorIndex = 46

不过,Microsoft 却知道他们付钱让我们来“教”诸位的东西几乎根本不用费力。让我们保守我们之间的这个小秘密,好吗?

唯一有些棘手的部分是为 SeriesCollection 设置属性值。这是因为在一个图表中可以有多个 SeriesCollection。例如,此图表就有两个系列集合:

objChart.SeriesCollection(1).Interior.ColorIndex = 3

[/code]
要是还有一个 SeriesCollection 对象,而且我们想要将对象的背景颜色也设置为红色,又该如何?好啊,为什么不试试:

objChart.SeriesCollection(2).Interior.ColorIndex = 3

注意。当您参考专栏末尾的“大师”脚本时,请注意,除了设置背景颜色以外,我们还为 SeriesCollection 起了一个名:2004。这正是脚本专家引以为傲的众多附赠特色之一!

对于 ChartTitle,我们所要做的只是将字体大小更改为 24 磅,将字体颜色更改为白色。这只需存取 ChartTitle.Font 并设置以下各值即可:

objChart.ChartTitle.Font.Size = 24
objChart.ChartTitle.Font.ColorIndex = 2

最后(但当然不是最不重要),我们来谈谈图表轴。在标准的柱形图中有三个不同的轴,无论何时设置图表格式,都需要指定自己要处理哪个轴:

轴。“值”轴(对您而言即是数学上的 y 轴)是图形的垂直轴。要处理“值”轴,我们需要定义一个名为 xlValue 的常量并为该常量赋值 2。

类别轴。“类别”轴(即 x 轴)是图形的水平轴。要处理“类别”轴,我们需要定义一个名为 xlCategory 的常量并为该常量赋值 1。

系列轴。代表三维图表的“深度”;“系列”轴在图表中存在一个以上的 SeriesCollection 时最为有用。要处理“系列”轴,我们需要定义一个名为 xlSeriesAxis 的常量并为该常量赋值 3。

在今天的脚本中,我们要将所有三个轴的“刻度标签”的字体改为粗体。这样做的主要目的是向您展示如何存取不同的轴;例如,这行代码会修改“值”轴的刻度标签:

objChart.Axes(xlValue).TickLabels.Font.Bold = TRUE

同样,对于轴还有更多的事情可做,但其中大多数要等到以后的专栏再做介绍。同时,如果您决定参照 Excel VBA 语言参考自行探索,这篇文章至少应能引领您走上正确的方向。开始时,您不妨只在我们所提供的基本脚本上进行一些更改。可以更改 ChartTitle 的字体颜色或字体大小,也可以更改 PlotArea 的背景颜色。还可以尝试做一些我们没有谈及的事情。只要觉得有趣,任何事情都可以做,不是吗?

顺便说一下,下面就是那个可以生成具有艺术美感图表的脚本:

Const xlCategory = 1
Const xlValue = 2
Const xlSeriesAxis = 3
Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = True
Set objWorkbook = objExcel.Workbooks.Add()
Set objWorksheet = objWorkbook.Worksheets(1)
objWorksheet.Cells(1,1) = "Operating System"
objWorksheet.Cells(2,1) = "Windows Server 2003"
objWorksheet.Cells(3,1) = "Windows XP"
objWorksheet.Cells(4,1) = "Windows 2000"
objWorksheet.Cells(5,1) = "Windows NT 4.0"
objWorksheet.Cells(6,1) = "Other"
objWorksheet.Cells(1,2) = "Number of Computers"
objWorksheet.Cells(2,2) = 145
objWorksheet.Cells(3,2) = 987
objWorksheet.Cells(4,2) = 611
objWorksheet.Cells(5,2) = 41
objWorksheet.Cells(6,2) = 56
Set objRange = objWorksheet.UsedRange
objRange.Select
Set colCharts = objExcel.Charts
colCharts.Add()
Set objChart = colCharts(1)
objChart.Activate
objChart.HasLegend = FALSE
objChart.ChartTitle.Text = "Operating System Use"
objChart.ChartType = -4100
objChart.ChartArea.Interior.ColorIndex = 1
objChart.ChartTitle.Font.Size = 24
objChart.ChartTitle.Font.ColorIndex = 2
objChart.Walls.Interior.ColorIndex = 37
objChart.Floor.Interior.ColorIndex = 37
objChart.SeriesCollection(1).Interior.ColorIndex = 3
objChart.SeriesCollection(1).Name = "2004"
objChart.PlotArea.Interior.ColorIndex = 40
objChart.PlotArea.Border.Weight = 4
objChart.PlotArea.Border.ColorIndex = 46
objChart.Axes(xlValue).TickLabels.Font.Bold = TRUE
objChart.Axes(xlCategory).TickLabels.Font.Bold = TRUE
objChart.Axes(xlSeriesAxis).TickLabels.Font.Bold = TRUE
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: