【问题标题】:Excel VBA - Setting xlvalues axis color to graduateExcel VBA - 将 xlvalues 轴颜色设置为毕业
【发布时间】:2013-10-06 00:42:49
【问题描述】:

我的宏记录器中可能存在错误,因为当我尝试记录 xlvalues 轴中的颜色变化时,没有记录下来。 我需要做的是设置具有 2 种不同灰度和不同透明度的 渐变 径向颜色。

我正在使用此代码来设置我的图表:

ActiveSheet.Shapes.AddChart.Select

    With ActiveChart
        .ChartType = xlRadar
        .SetSourceData Source:=Range(StartCell, StopCell) ' Those contain a range of interesting data
        With .SeriesCollection(1)
            .Name = "=""Line 1"""
            .Format.Line.Weight = 1.5
        End With
        With .SeriesCollection(2)
            .Name = "=""Line 2"""
            .Format.Line.Weight = 1.5
            .Format.Line.DashStyle = msoLineDash
        End With
        .SetElement (msoElementChartTitleAboveChart)
        .ChartTitle.Text = Left(Cells(StartCell.Row, 1).Text, 2) & "." & Mid(Cells(StartCell.Row, 1).Text, 3, 1) & " GHz"
        With .Axes(xlValue)
            .TickLabels.NumberFormat = "# ""dB"""
            .Border.ColorIndex = 3 ' <- This is yet to be modified
        End With
    End With

我该怎么做?我认为所有可以在 excel 中制作的东西,也可以在 vba 中以编程方式完成......

【问题讨论】:

  • this 相关吗?
  • 不。 .Border.ColorIndex 可以很好地更改颜色...只是我必须将其设置为灰色渐变而不是红色(= 3)
  • 尝试15 而不是3 - 因为15 是灰色的
  • 如果我想设置一个正常的颜色就可以了……但我真的需要这样的渐变:elliottback.com/wp/wp-content/excel-gradient-graph.png
  • 您提供的链接显示了填充了灰色渐变的图表背景。这是你想做的吗?

标签: vba excel colors charts radar-chart


【解决方案1】:

我想你不会对我得到的答案感到满意,但还是这样吧。

这似乎是 MS 从未修复的错误。

如果您转到对象浏览器或局部变量窗口,则轴的Format.Line 属性实际上没有任何内容可以让您操纵渐变。在录制宏时观察,无论我对该对话框采取何种手动操作,录制器都只会记录.Visible = msoTrue

这是我想要得到的结果:

虽然您可以操纵轴的.Format.Fill 渐变,但它在视觉上的出现只会影响轴值标签,而不是轴线本身

我观察到与线 Shapes 相同的限制,它有时可以与轴线非常相似。没有骰子,也是同样的问题:您可以手动完成,但记录器不会产生任何结果,并且对象浏览器不会显示相关属性。

MS 关于Axis.Format 的文档是even worse

这似乎是一个长期存在的问题

这里是乔恩·珀尔帖 lamenting this problem over 7 years ago。与许多形状有关的渐变填充是 2007 年的新功能。似乎他们在那个版本中从未真正使它变得健壮,此后也没有修复它。

我刚刚浏览了对象浏览器和 2007 年的在线帮助。 列出了一些新的东西,比如 LinearGradient 和 ColorStops, 这是 2007 年的新功能。但是,这些都与 Line 无关 或 LineFormat,并且 Line 和 LineFormat 没有新属性或 方法。 MSDN 中的 VBA 语言参考尚未包括 Office 2007。我在任何地方都没有找到任何解释 编程到新的形状。缺少宏记录器功能 提供对这个新对象模型的见解是非常不幸的。

就 VBA 而言,还有另一个 Microsoft MVP describing this as essentially hopeless。这适用于 PowerPoint,但一般功能和方法应该相同:PPT 中的 Shape 与 XLS 或 Word 中的 Shape 并没有真正的不同。同样,任何应用程序中的图表现在都是相同的 Excel 图表,而不是 MSGraph。

这似乎是一个错误,但似乎没有解决方案:

您可能尝试访问的属性(例如,.Format.Line.Fill... 等)根本不存在 - 好吧,实际上我怀疑它们确实存在,但它们没有暴露给您或 VBA。尝试调用它们会引发错误:(

【讨论】:

  • 似乎我遇到了第一个真正的 VBA 问题... :/ 好吧,希望他们能解决它。如果您找到任何有关人们找到解决此问题的方法的信息,请告诉我。
猜你喜欢
  • 2020-02-26
  • 1970-01-01
  • 2013-05-19
  • 2015-10-07
  • 1970-01-01
  • 2012-11-09
  • 2017-04-12
  • 1970-01-01
  • 2016-03-13
相关资源
最近更新 更多