作者:绿色风
分类:
时间:2022-08-17
浏览:109
楼主 amulee |
Q:如何编写获取对象的属性和方法的自定义函数? A:首先,请下载附件,并在VBA工程引用中添加附件中的DLL文件,然后在模块中写下如下代码:
- '自定义函数获取对象属性和方法。
- Function GetAllPros(Target As Object)
- Dim ArrJG()
- Dim oIFI As Inte**ceInfo
- Set oIFI = TLI.Inte**ceInfoFromObject(Target)
- '定义结果数组
- ReDim ArrJG(1 To oIFI.Members.Count, 1 To 3)
- '获取各属性
- For i = 1 To oIFI.Members.Count
- Select Case oIFI.Members(i).InvokeKind
- Case INVOKE_CONST
- ArrJG(i, 1) = "常数:" & oIFI.Members(i).Name
- Case INVOKE_EVENTFUNC
- ArrJG(i, 1) = "事件:" & oIFI.Members(i).Name
- Case INVOKE_FUNC
- ArrJG(i, 1) = "方法:" & oIFI.Members(i).Name
- Case INVOKE_PROPERTYGET
- ArrJG(i, 1) = "属性(Get):" & oIFI.Members(i).Name
- Case INVOKE_PROPERTYPUT
- ArrJG(i, 1) = "属性(Let):" & oIFI.Members(i).Name
- Case INVOKE_PROPERTYPUTREF
- ArrJG(i, 1) = "属性(Set):" & oIFI.Members(i).Name
- Case INVOKE_UNKNOWN
- ArrJG(i, 1) = "未知:" & oIFI.Members(i).Name
- End Select
- '属性或方法的类型。私有或者共有的。0是公有的,也就是可以访问或使用的,其他的有待研究
- ArrJG(i, 2) = oIFI.Members(i).AttributeMask
- '帮助文本
- ArrJG(i, 3) = oIFI.Members(i).HelpString
- Next i
- '返回结果数组
- GetAllPros = ArrJG
- End Function
上述的结果返回是一个数组,可以参考以下过程输出结果
- Sub 测试()
- Dim MyObj As Object
- Dim Arr()
- '测试FSO对象
- Set MyObj = CreateObject("Scripting.FileSystemObject")
- Arr = GetAllPros(MyObj)
- With Sheet1
- .Cells.Clear
- .Range("A1").Resize(UBound(Arr), 3) = Arr
- .Columns.AutoFit
- End With
- End Sub
获取对象所有的属性和方法.rar |
2楼 蓝桥玄霜 |
收藏学习了。 原来是阿童木版主在这里。 |
3楼 wise |
欢迎蓝版! |
4楼 罗刚君 |
代码中有两个* 不能显示出来吗? |
5楼 海洋之星 |
大神级别啊,收藏学习了 |
免责声明
有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素,
经与ExcelTip.Net站长Apolloh商议并征得其同意,
现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示,
供有需要的人士查询使用,也慰缅曾经的论坛时代。
所示各个帖子的原作者如对版权有异议,
可与本人沟通提出,或于本站点留言,我们会尽快处理。
在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一