【问题标题】:Changing line transparency of a series without affecting marker transparency in Excel VBA更改系列的线条透明度而不影响 Excel VBA 中的标记透明度
【发布时间】:2012-03-01 22:22:10
【问题描述】:

我正在 VBA 中为 excel 编写一个宏,我想在其中更改连接系列中标记的线条的透明度,但保持系列中标记的透明度相同。

指定:图表是散点图。我希望系列的标记为不透明/零透明度,系列中的线条为 75% 透明。

我已经通过使用调整了线条的透明度 myseries.format.line.transparency = 0.75 但这也会改变标记的透明度。

有谁知道我可以分别更改两者透明度的方法吗?我想有一个成员/属性可以做我想做的事,但我找不到它。

提前感谢您的帮助!

【问题讨论】:

    标签: vba excel transparency


    【解决方案1】:

    这个答案不会让你很高兴。

    我以前研究过这个,我得到的信息是,这根本不是您可以通过 VBA 指定的参数。看起来您可以访问标记样式、大小、背景颜色和前景色,仅此而已。

    也许 MS 认为没有人会想要搞砸这一点。

    您可以尝试的一件事是应用自定义图表格式,但如果您有可变数字和/或系列顺序,那么这可能不起作用。

     mychart.ApplyChartTemplate ("filepath\filename.crtx")
    

    类似的东西,其中 mychart 已经设置为等于您要格式化的图表。

    再一次,也许对你没有任何用处,我能想到的最好的。

    【讨论】:

    • 我的研究使我认为这也可能是不可能的......感谢您的意见。
    【解决方案2】:

    你们挖得不够努力。

    SeriesCollection(i).Format.Line.Transparency

    将起作用如果 SeriesObject 处于某种状态。最初的“自动”线条样式状态会阻止此 vba 执行任何操作,但如果您只是在它之前先设置线条格式的某些其他属性,那么透明度就会生效。以下对我有用:

    For Each obj In myChart.SeriesCollection
        obj.Format.Line.DashStyle = 1
        obj.Format.Line.Transparency = 0.65
    Next obj
    

    DashStyle = 1 将线条样式设置为“实线”(与虚线、点线等相反),并具有释放系列格式以设置透明度的副作用。我不确定它为什么有效,但确实有效。

    【讨论】:

    • 我认为这个问题更多地与如何在不改变标记透明度的情况下改变线条的透明度有关。这并不能真正回答这个问题。
    【解决方案3】:

    对不起,我的错。我读的问题略有错误。

    我发现如果我在没有标记的情况下开始线条,那么单独打开透明度并不会打开和关闭标记。

    【讨论】:

      【解决方案4】:

      试试这个:

      activechart.SeriesCollection(1).format.fill.transparency=0.5
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-07-23
        • 2018-12-07
        • 2012-09-20
        • 2018-06-21
        • 2013-03-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多