关闭 vba 生成的 Excel 绘图上的标记阴影

2024-03-10

我正在将一些用于在 Excel 中生成散点图的代码从 Win 7 / Excel 2010 移植到 OS X / Excel 2011。在 Mac 上,数据点显示有阴影。我不想要阴影,也不知道如何摆脱它。

Using 这个工作表 http://dl.dropbox.com/u/48901983/shadowOff.xlsm(如果您不想下载启用宏的工作表,则单元格 A1:B6 中只有随机数)以下代码运行良好,但会生成带有阴影的数据点:

Sub plotNoShadow()

  Dim x As Range
  Dim y As Range

  Dim cht As ChartObject

  Set x = ActiveSheet.Range("A1:A6") 'haphazard numbers
  Set y = ActiveSheet.Range("B1:B6")

  Set cht = ActiveSheet.ChartObjects.Add(Left:=150, Top:=50, Width:=200, Height:=160)
  With cht.Chart
    .ChartType = xlXYScatter
    .SeriesCollection.NewSeries
    With .SeriesCollection(1)
        .XValues = x
        .Values = y
        .Format.Shadow.Visible = msoFalse 'This seems to parse, but have no effect
    End With
    .SetElement (msoElementLegendNone)
    .SetElement (msoElementPrimaryValueGridLinesNone)
  End With      
End Sub

谁能向我解释一下:

  1. 如何修改此代码以去除阴影,以及

  2. 这段代码是如何运行的,但是将 SeriesCollection(1).Format.Shadow.Visible 设置为 msoFalse 却能够在没有任何明显效果的情况下运行?

根据下面的评论线程,这是左侧宏输出的屏幕截图,中间打开然后关闭阴影的点,右侧打开阴影的点。为了清楚起见,我编辑了宏以删除图例和网格线。 看起来宏输出的阴影比“阴影打开”状态少,但比“阴影关闭”状态阴影多。


如前所述,Excel 中的几种默认图表样式会产生轻微的 3D 效果,同时也会产生轻微的阴影。

在我的 Excel(Windows 7 中)上,默认图表样式为 2,因此不会出现阴影或 3D 效果。我怀疑在 Mac 上,默认的图表样式是不同的。

要解决此问题,您可以在代码中设置图表样式:

With cht.Chart
  .ChartType = xlXYScatter
  .ChartStyle = 2
  .....

在 Excel 中,ChartStyle 设置能够修改图表外观的各个方面,包括标记的外观。 MarkStyle 设置的唯一内容是标记的形状。当 ChartStyle 更改时,标记的所有其他外观方面都会被覆盖。

EDIT

上面的评论基本上还是正确的,但是我已经找到了关闭阴影的方法。与 Excel 中的许多事情一样,它并不像您想象的那么容易。如果在代码中完成设置阴影的可见性属性(无论出于何种原因),则不会产生任何效果,因此您需要将阴影类型设置为“无阴影”。

Sub plotNoShadow()

  Dim x As Range
  Dim y As Range

  Dim cht As ChartObject

  Set x = ActiveSheet.Range("A1:A6") 'haphazard numbers
  Set y = ActiveSheet.Range("B1:B6")

  Set cht = ActiveSheet.ChartObjects.Add(Left:=150, Top:=50, Width:=200, Height:=160)
  With cht.Chart
    .ChartType = xlXYScatter
    .ChartStyle = 26 'Something 3D with a default shadow. This line can be left out.
    .SeriesCollection.NewSeries
    With .SeriesCollection(1)
        .XValues = x
        .Values = y
        .Format.Shadow.Type = msoShadow30 'This is the code for an inner shadow
    End With
  .SetElement (msoElementLegendNone)
  .SetElement (msoElementPrimaryValueGridLinesNone)
  End With

End Sub

再次编辑

实际上,msoShadow30是一种“内部阴影”样式,根据您的标记样式,可能看起来很奇怪。msoShadow41这是我能找到的最接近“No Shadow”的东西。它实际上是下面的阴影代码,但是默认情况下,它太微弱了,看不到。如果它确实出现,可以随时更改颜色以使其消失。

或者更好的是,将透明度设置为 1(完全透明):

.Format.Shadow.Transparency = 1.0 'Fully transparent
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

关闭 vba 生成的 Excel 绘图上的标记阴影 的相关文章

随机推荐

  • 如何检查本地文件是否是tfs中的最新版本?

    我希望能够询问 TfsTeamProjectCollection 并确定服务器上是否有更新版本的文件 我希望能够在不实际获取文件的情况下执行此操作 这在某个地方可能吗 我已经做了一些摸索 到目前为止还绘制了空白 Thanks 最简单的方法是
  • 查询 influxdb 的日期

    我在 influxdb 中有一个表 其中有一列名为 expirydate 在专栏中我有一些日期 例如 2016 07 14 或 2016 08 20 我只想选择 2016 07 14 日期 但我不确定如何 目前我的查询是 SELECT FR
  • 如何对 Matrix 包中“sparseMatrix”类的对象进行 QR 分解?

    我想用 QR 分解Matrix qr 我用它创建的矩阵上的函数B lt as A sparseMatrix 我知道我可以得到 R 矩阵Matrix qr R 不过 我还需要 Q 矩阵 Matrix包中似乎没有qr Q 函数 如何获得 Q 矩
  • 从 pandas 数据框到元组(对于半正矢模块)

    我有一个熊猫数据框my df包含以下列 id lat1 lon1 lat2 lon2 1 45 0 41 3 2 40 1 42 4 3 42 2 37 1 基本上 我想做以下事情 import haversine haversine ha
  • 缩放和平移 - 将 d3 代码升级到 d3.v4

    我一直在尝试将此代码升级到 d3 的 v4 但没有成功 function xnr selector var coordinates id 1 x 120 16353869437225 y 160 974180892502466 id 2 x
  • 这在 C# 或 LINQ 中意味着什么? - ( () => )

    我正在阅读 Jeffrey Palermo 的书并遇到了这种语法 private void InitializeRepositories Func
  • 使用 XPATH 在具有命名空间的 XML 中选择节点时出现问题

    我有以下 XPATH 行 det nItem 1 prod cProd 使用以下命令成功选择所需的节点XPath 可视化工具 http xpathvisualizer codeplex com 它会自动识别命名空间 您可以定义要选择的命名空
  • Eclipse 在哪里存储有关启动哪个工作区的信息?

    当我启动 Eclipse 时 它 会从我创建的工作区之一开始 并选择 不再询问 通常 Eclipse 会在启动过程中询问从哪个工作区开始 因此它必须存储要使用的工作空间 它在哪里存储这条信息 In HOME eclipse org ecli
  • VB在特定记录上打开表单

    我正在使用 Microsoft Access 我想在单击按钮时打开特定 ID 的表单 我可以在 Do open 表单命令中指定 id 吗 下面的代码打开一个表单 但随后打开一个对话框 要求输入 id 有人有什么想法吗 Private Sub
  • SwiftUI 问题将变量传递到另一个视图

    我想将浮点变量从一个视图传递到另一个新视图 在下面的代码中 有一个名为 mhzValue 的浮点值 它是通过滑块设置的 滑块更改该值 然后文本显示在视图中 当用户点击导航按钮显示新视图时 我希望能够获取 mhzValue 并将其显示在文本框
  • 在 CosmosDb 中使用 BulkExecutor 时出现无效索引异常

    当我尝试使用 BulkExecutor 更新 CosmosDb 中的属性之一时出现错误 错误消息是 索引超出范围 必须为非负数且小于集合的大小 参数名称 索引 重要的一点 我没有在我的集合上定义分区键 这是我的代码 SetUpdateOpe
  • 将插件插入流体模板?

    扩展名客搜索 https typo3 org extensions repository view ke search有一个搜索字段插件 我想将其插入到我的流体模板中并显示在每个页面上 我对此很陌生 不知道如何开始 任何帮助表示赞赏 您可以
  • 如何覆盖 django AuthenticationForm 输入 css 类?

    我有一个使用基本 django 注册框架的 django 站点 我的登录页面工作正常 但我想更改输入上的 css 类 传递到登录页面的表单看起来是一个 AuthenticationForm 类 将 css 类添加到用户名和密码字段的好方法是
  • Visual Basic 6中如何保存断点

    如何在 Visual Basic 6 中保存断点 有任何插件吗 现在我有 MZ Tools 但不幸的是它们不保存断点 我不确定第三方工具 但您始终可以使用 Debug Assert False 完成后记得将其删除
  • For 语句,每第 1000 次演练,做某事

    我正在遍历 For 循环 100 000 次 这个数字可以多样化 每第一千次我都想做一些特别的事情 那些我在其他演练中没有做的事情 像这样的东西 for int i 0 i lt 100000 i doTasks Normal if i 1
  • git-http-backend 与 apache2.4 Centos 7

    我尝试在我的 apache 服务器上设置 Git 服务器 但它不起作用 我得到了以下 git conf SetEnv GIT PROJECT ROOT var www html git project1 SetEnv GIT HTTP EX
  • Java 8 Stream API 中的多个聚合函数

    我有一个类定义如下 public class TimePeriodCalc private double occupancy private double efficiency private String atDate 我想使用 Java
  • 如何防止在 IE9 中加载页面时出现“无法获取属性‘dir’的值:对象为 null 或未定义”错误

    我有一个 Dojo 1 7 4 应用程序 在 IE9 中加载页面时出现 无法获取属性 dir 的值 对象为 null 或未定义 错误 我使用的是 AMD 版本 当它必须单独加载所有文件时 不会发生错误 我可以控制的所有代码都包含在 dojo
  • Kotlin:抑制未使用的属性?

    我的源代码如下 有警告 从未使用属性 我添加了 Suppress UNUSED PARAMETER Suppress UNUSED PROPERTY GETTER Suppress UNUSED PROPERTY SETTER 然而 它们都
  • 关闭 vba 生成的 Excel 绘图上的标记阴影

    我正在将一些用于在 Excel 中生成散点图的代码从 Win 7 Excel 2010 移植到 OS X Excel 2011 在 Mac 上 数据点显示有阴影 我不想要阴影 也不知道如何摆脱它 Using 这个工作表 http dl dr