遍历工作簿中所有用户窗体。

4
我想编写一个VBA程序,打印工作簿中所有用户窗体的名称。
例如,如果一个工作簿有一个名为frmHello的用户窗体。我只想打印UserForm: frmHello 有人知道哪个集合与用户窗体相关,如何找到用户窗体的名称吗?

2
是的,您可以在这里了解VBE程序设计的基础知识(www.cpearson.com/excel/vbe.aspx)。这将允许您迭代工作簿中VBProject的VBComponents集合。然后,您可以检查每个组件是否为“Type = vbext_ct_MSForm”,并相应地打印您的列表。 - David Zemens
1个回答

6
这个对我有用:
Dim c As Object
For Each c In ThisWorkbook.VBProject.VBComponents
     If c.Type = 3 Then
         MsgBox c.Name
     End If
Next

4
请注意,这个操作(如果不是在插件中)需要额外的安全权限(Excel 选项 > 信任中心 > 宏设置 > 信任对 VBA 项目对象模型的访问)。 - Cor_Blimey
1
谢谢,@Cor_Blimey,这是非常有价值的评论 :) - Dmitry Pavliv

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接