如何全面管理 VBA UserForm 的属性?

How Can I Comprehensively Manage my VBA UserForm's Properties?

我正在 Microsoft Office Word 2007 下编写我的第一个 VBA 加载项 Windows 7 Pro/64 。此加载项的一部分是 UserForm。使用从 Word 运行的 Visual Basic 编辑器,我发现有两种查看方式和两种修改用户窗体属性的方式:

  1. 对象浏览器 查看所有属性 (F2)
  2. 查看 一些 属性并从 属性 Window 编辑它们(F4)
  3. 代码 window (F7)
  4. 手动输入和编辑任何属性 ]

这是我的属性和代码的截图windows:

我发现的一个问题是 属性 Window 仅包含用户窗体属性的一个子集(请注意 CanPasteCanRedoCanUndo 没有出现在 Properties) 中,属性 Window 被代码 window 中的更改覆盖(例如,在运行时,代码 window 覆盖 Properties).

中的 Caption 字段

我想我应该完全避免使用 Properties,并通过 UserForm_Initialize 输入所有设置,如上所示。但是 (a) 对于某些设置,Properties 会同时进行多项设置。例如,从 Properties 选择 V​​erdana Bold 等于 Code 中的 Font = VerdanaFont.Bold = True。 (b) 似乎 Properties 将其控制的属性子集设置为其选择的默认值,如果我更改它们,我看不到它们最初的样子。

因此,我希望一次统一和全面地访问我所有用户窗体的属性,包括上述默认设置。有谁知道如何将用户窗体的默认设置显示为代码,或者如何在代码 window 中自动打开 所有 其当前设置?有没有我不知道的保护伞机制?

我不是资深 VBA 程序员,但我不敢相信我的经历是独一无二的。我徒劳地在网上搜索了解决方案。经验丰富的您如何解决这个难题?

您使用属性 window 在 设计时 设置与 外观 相关的属性。这些 属性 值将始终应用 ,除非 您在 run-time 处使用 VBA 代码明确更改它们。

与外观无关的属性,例如 CanPasteCanRedo 处表单的 状态 相关run-time,因此在 design-time.

处配置它们没有意义

您几乎可以更改 run-time 中的所有属性,无论是在 Initialize 事件中还是在其他地方。您甚至可以在 run-time 处添加控件,但一旦表单实例终止,您的更改将不会保留。