Using object properties that aren't listed in Object Browser

a 夏天 提交于 2020-02-24 03:50:52

问题


I've been looking into the underlying structure of object properties and methods in VBA a bit more. I've just read that all properties and methods for each object is listed in the "Object Browser" in the developer box.

The reason why I was prompted to look at this was that I used a method that wasn't listed in the Object Browser. I used:

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

This allowed me to then use .List to change the Shape. However .ControlFormat isn't a property/method listed in Object Browser.

Can anyone explain this?


回答1:


It appears in mine - perhaps you're looking for "Shapes" which is a collection, as opposed to "Shape" which is the actual object?


Detail:

Shapes is a collection of Shape objects - therefore Shapes has properties and methods that relate to a Collection object. Each item in that collection is a Shape object which has the properties and methods of a Shape




回答2:


Besides what MacroMan explained, here is something you should always follow (as a habit)

Work with objects for intellisense to work correctly.

See this Example

Sub Sample()
    Dim ws As Worksheet
    Dim Shp As Shape

    Set ws = Sheets("Front face")
    Set Shp = ws.Shapes("Drop Down 12")
End Sub

Now if you do Shp. you will get the .ControlFormat property.

Another example

When you want to access the .Range of a worksheet, you will not get that if you type Activesheet.. For intellisense, again work with objects.



来源:https://stackoverflow.com/questions/32582677/using-object-properties-that-arent-listed-in-object-browser

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!