使用Office Web组件向Microsoft文档中添加图表

在本文中,我将向您展示如何使用Microsoft Office Web Components中一个真正方便且简单的VBA对象,该对象使您可以将Chart直接插入文档,演示文稿或可以创建VBA代码的任何其他内容运行它。这也可以包括很多具有VBA后端的非Microsoft产品。

在此示例中,我将向您展示如何在程序中启用设计模式(在这种情况下, ,我们将使用Microsoft Word),将图表对象嵌入到您的项目中,然后如何编写将数据填充到其中的代码。

在我过去的一些VBA文章中,有一些提到对于以前从未编写过代码的人来说,手头的任务有点太复杂了。希望阅读本文后,您会有动力尝试使用VBA。此处包含的代码非常直接且易于编写。如果您从未尝试过使用VBA,则将其嵌入图表是一种很好的方法。

如果您确实了解VBA,则这是一种将快速图表嵌入到项目中的好工具。

启用设计模式

在此示例中,我想将一个带有嵌入图表的快速文档放在一起,以显示我当月的数据预算以及迄今为止支出年度的每月平均值。

在此示例中,我将把这些硬编码的值放在VBA代码内的“数组"中,但最终您可以使用各种技术从其他来源(例如外部电子表格,甚至是您每月手动输入值的表格)中加载这些数组变量(数组只是一个包含值列表的变量)。

要了解如何从Excel将数据导入Word,请查看有关该主题的文章。出于本文的目的,我们将重点放在创建图表以显示数据上。

现在,我已经开始创建文档,现在想进入代码。在Word或Excel中,可以通过单击“文件",“选项",然后单击“自定义功能区"选项来执行此操作。在选项的右侧,您将看到“自定义功能区"列,在“主选项卡"字段中,您应该看到未选中“开发人员"。选中该框。

返回文档,您现在应该可以看到“ Developer"菜单项。在此菜单中,您将找到“设计模式"按钮。

单击“设计模式",然后单击“旧版工具"的文件夹/工具图标,然后在该菜单的右下角弹出框,在ActiveX控件下,单击“更多控件"按钮。

向下滚动可用控件列表,直到获得“ Microsoft Office Chart xx.x"。如果您在计算机上安装了Microsoft Office,则该控件很可能将可用。

将控件插入文档后,您会看到它显示为一个框,其中显示“ Microsoft Office Web Components"。这实际上是您的空图表,准备显示您的数据。

下一步是编写将设置图表类型的代码并显示数据。如果您希望流程是手动的,则可以在文档上放置一个按钮,该按钮会将数据加载到图表中,但就我而言,我希望整个过程完全自动化。打开文档的那一刻,我希望它运行加载图表的脚本,因此您可以在代码中执行此操作(单击“ Visual Basic"按钮进入代码编辑器),然后选择“文档对象",然后选择“打开"事件。

这将自动在代码中放置一个名为“ Document_Open()"的空函数。在该函数内部,您想粘贴以下代码。

 300)

这部分代码创建了三个数组。第一个(xValues)本质上是每个数据元素的x轴描述列表。就我而言,我正在使用yValues1创建一个柱状图,但是您也可以创建一个折线图。我将向您展示如何使用yValues2。现在,也粘贴以下代码段。您的图表目前没有任何数据,但是您可以使用几条命令来设置图表标题和标题。现在该添加数据了。将以下代码粘贴到已粘贴的代码下方。

The code above creates two series to display in your chart. The first series configures the data to display inside the chart object as a “ColumnClustered” format, and the second series is set up to display as a “TypeLineMarkers” format. This will display both sets of values on the same chart, but it’ll use different chart types – which can actually be a very cool way to display and compare multiple sets of data.

现在,已添加数据,剩下的就是整理轴并完成图表详细信息。

Format the Value Axes

The code above formats the numbers on the left axis to display in numerical dollar format. The next line configures the maximum limit of the vertical axis. Since I know individual items won’t go over $1000, that’s what I set the max y-axis limit to.

保存文档,将其关闭,重新打开,然后瞧瞧-随即出现了图表,该图表会自动加载两个数组中的数据。

现在您知道如何插入图表并自动将数据加载到其中,只需考虑各种可能性。您要做的就是将任何外部数据放入这些数组中-可能是Excel电子表格,可能是Access数据库或其他任何东西-突然,此文档变成了一个非常动态且有价值的存储数据窗口。

这只是MS Office Web组件对象的冰山一角。我从图表开始,因为我发现该功能最令人兴奋。使用非常简短的脚本将图表添加到所需的任何VBA应用程序中将非常有用且功能强大。

如果您完全了解图表,为什么不尝试使用此图表对象呢?您知道VBA还有其他有用的图表对象吗?您如何将数据嵌入到您的应用程序中?在下面的评论部分中分享您的想法和经验。

图片来源:通过Shutterstock的Tablet Finance条形图

标签: Microsoft Excel Microsoft PowerPoint Microsoft Word Visual Basic编程