0

粗略地说,我想从 Excel 图表创建一个子类,以将以下功能添加到子类中:

  1. 在图表的视觉外观上添加一个按钮(按钮相对于图表应该有一个固定的位置 - 所以如果我移动图表,按钮也会移动)。实际上,它不必完全是按钮 - 它可能是任何其他允许单击它(或执行任何其他操作)并在单击后执行一些活动的东西。
  2. 向图表添加一些附加属性(这些属性不会以可视方式显示,但它们会影响时间序列的表示)。也许有一种标准方法来自定义 Excel 图表的属性集?

我不知道这在多大程度上是可能的。也许“子类”不是满足这种简单需求的好主意。也许VSTO有东西,但我在互联网上找不到合适的东西。

任何帮助将不胜感激!

附言

对于子问题#2,我决定使用字段 TAG 来放置一个带有附加参数的对象。

4

1 回答 1

2

在回答您的第一个问题时,可以在图表中嵌入表单控制按钮或形状,并通过将其剪切并粘贴到图表上来保持其相对于图表区域的位置。使用该OnAction属性为按钮分配一个过程。

记录的代码(在 Excel 中)是这样的:

Sub Macro1()
    ActiveSheet.Buttons.Add(166.5, 48, 48, 32.25).Select
    Selection.OnAction = ActiveWorkbook.Name & "!TestMacro"
    Selection.Cut
    ActiveSheet.ChartObjects("Chart 1").Activate
    ActiveChart.Paste
    Selection.ShapeRange.IncrementLeft 10
    Selection.ShapeRange.IncrementTop 30
End Sub

可能通过添加到 ChartObject 的 ShapeRange 以编程方式执行此操作而无需剪切和粘贴,但我尚未对此进行探索。

我不知道您可以在多大程度上直接对 Excel 图表进行子类化(如果有的话),并怀疑您可能只是在 C# 中为它创建了一个包装类。

于 2013-06-11T22:56:07.397 回答