【问题标题】:Is it possible to address a shape with VBA code?是否可以使用 VBA 代码处理形状?
【发布时间】:2019-02-20 23:13:59
【问题描述】:

因为well know problem,我正在用 Excel 形状替换我的所有 ActiveX 控件。因此,我将每个 ActiveX Button 替换为一个矩形形状,并为每个形状分配一个宏:

我的问题是我是否可以使用我的 vba 代码来处理这些“形状按钮”。像改变“Review Start”按钮的背景颜色这样简单的事情应该是可能的,对吧?

我在想这样的事情:

Activesheet.shapes("Review Start").background.colorindex = 1

(这段代码显然不行)

【问题讨论】:

  • Shape 没有 Background 属性,但如果您将形状命名为“Review Start”(而不仅仅是文本),您应该可以使用 Shapes("Review Start") 访问它

标签: excel vba


【解决方案1】:

一种方法是这样。为形状分配一个变量,然后您可以轻松访问其属性和方法。我不确定是否有不使用 RGB 的方法。

通过将变量声明为Shape 类型,Intellisense 将向您显示属性和方法。您也可以使用Object Browser (F2)。

Sub x()

Dim s As Shape

Set s = ActiveSheet.Shapes("Review Start") 'better to specify a sheet name

With s
    .Fill.ForeColor.RGB = RGB(255, 255, 255)
    .TextFrame.Characters.Font.Color = vbBlack
    .TextFrame.Characters.Text = "Fred"
End With

End Sub

【讨论】:

  • 另外,这样做总是好的,然后你也可以在调试时查看本地窗口。
  • 非常感谢!另外我想知道,如何更改按钮的“值”/“标题”。我在列表中看不到任何相关属性。
  • 我已经添加到上面的代码中。记得使用比我更有意义的过程和变量名!
猜你喜欢
  • 2011-10-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-01-30
  • 1970-01-01
  • 2018-10-17
  • 1970-01-01
  • 2010-09-24
相关资源
最近更新 更多