使用对象浏览器中未列出的对象属性

我一直在研究VBA中对象属性和方法的底层结构。 我刚刚读过,每个对象的所有属性和方法都列在开发者框的“对象浏览器”中。

我被提示看这个的原因是我使用了一个没有在对象浏览器中列出的方法。 我用了:

Sheets("Front face").Shapes("Drop Down 12").ControlFormat 

这允许我然后使用.List来改变形状。 但是.ControlFormat不是在对象浏览器中列出的属性/方法。

任何人都可以解释吗?

在这里输入图像描述

它出现在我的 – 也许你正在寻找“形状”这是一个集合,而不是“形状”这是实际的对象?


详情:

ShapesShape对象的集合 – 因此Shapes具有与Collection对象相关的属性和方法。 该集合中的每个项目都是一个Shape对象,它具有Shape的属性和方法

除了MacroMan解释的,你应该总是遵循这个习惯(作为一种习惯)

使用智能感知对象正常工作

看到这个例子

 Sub Sample() Dim ws As Worksheet Dim Shp As Shape Set ws = Sheets("Front face") Set Shp = ws.Shapes("Drop Down 12") End Sub 

现在,如果你做Shp. 您将获得.ControlFormat属性。

另一个例子

当你想访问工作表的.Range ,如果你键入Activesheet. ,你将不会得到Activesheet. 。 对于智能感知,再次与物体一起工作。

在这里输入图像描述