如何全面管理 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 编辑器,我发现有两种查看方式和两种修改用户窗体属性的方式:
- 从 对象浏览器 查看所有属性 (F2)
- 查看 一些 属性并从 属性 Window 编辑它们(F4)
- 从代码 window (F7)
手动输入和编辑任何属性 ]
这是我的属性和代码的截图windows:
我发现的一个问题是 属性 Window 仅包含用户窗体属性的一个子集(请注意 CanPaste
、CanRedo
和 CanUndo
没有出现在 Properties) 中,属性 Window 被代码 window 中的更改覆盖(例如,在运行时,代码 window 覆盖 Properties).
中的 Caption
字段
我想我应该完全避免使用 Properties,并通过 UserForm_Initialize
输入所有设置,如上所示。但是 (a) 对于某些设置,Properties 会同时进行多项设置。例如,从 Properties 选择 Verdana Bold 等于 Code 中的 Font = Verdana
和 Font.Bold = True
。 (b) 似乎 Properties 将其控制的属性子集设置为其选择的默认值,如果我更改它们,我看不到它们最初的样子。
因此,我希望一次统一和全面地访问我所有用户窗体的属性,包括上述默认设置。有谁知道如何将用户窗体的默认设置显示为代码,或者如何在代码 window 中自动打开 所有 其当前设置?有没有我不知道的保护伞机制?
我不是资深 VBA 程序员,但我不敢相信我的经历是独一无二的。我徒劳地在网上搜索了解决方案。经验丰富的您如何解决这个难题?
您使用属性 window 在 设计时 设置与 外观 相关的属性。这些 属性 值将始终应用 ,除非 您在 run-time 处使用 VBA 代码明确更改它们。
与外观无关的属性,例如 CanPaste
和 CanRedo
与 处表单的 状态 相关run-time,因此在 design-time.
处配置它们没有意义
您几乎可以更改 run-time 中的所有属性,无论是在 Initialize
事件中还是在其他地方。您甚至可以在 run-time 处添加控件,但一旦表单实例终止,您的更改将不会保留。
我正在 Microsoft Office Word 2007 下编写我的第一个 VBA 加载项 Windows 7 Pro/64 。此加载项的一部分是 UserForm。使用从 Word 运行的 Visual Basic 编辑器,我发现有两种查看方式和两种修改用户窗体属性的方式:
- 从 对象浏览器 查看所有属性 (F2)
- 查看 一些 属性并从 属性 Window 编辑它们(F4)
- 从代码 window (F7) 手动输入和编辑任何属性 ]
这是我的属性和代码的截图windows:
我发现的一个问题是 属性 Window 仅包含用户窗体属性的一个子集(请注意 CanPaste
、CanRedo
和 CanUndo
没有出现在 Properties) 中,属性 Window 被代码 window 中的更改覆盖(例如,在运行时,代码 window 覆盖 Properties).
Caption
字段
我想我应该完全避免使用 Properties,并通过 UserForm_Initialize
输入所有设置,如上所示。但是 (a) 对于某些设置,Properties 会同时进行多项设置。例如,从 Properties 选择 Verdana Bold 等于 Code 中的 Font = Verdana
和 Font.Bold = True
。 (b) 似乎 Properties 将其控制的属性子集设置为其选择的默认值,如果我更改它们,我看不到它们最初的样子。
因此,我希望一次统一和全面地访问我所有用户窗体的属性,包括上述默认设置。有谁知道如何将用户窗体的默认设置显示为代码,或者如何在代码 window 中自动打开 所有 其当前设置?有没有我不知道的保护伞机制?
我不是资深 VBA 程序员,但我不敢相信我的经历是独一无二的。我徒劳地在网上搜索了解决方案。经验丰富的您如何解决这个难题?
您使用属性 window 在 设计时 设置与 外观 相关的属性。这些 属性 值将始终应用 ,除非 您在 run-time 处使用 VBA 代码明确更改它们。
与外观无关的属性,例如 CanPaste
和 CanRedo
与 处表单的 状态 相关run-time,因此在 design-time.
您几乎可以更改 run-time 中的所有属性,无论是在 Initialize
事件中还是在其他地方。您甚至可以在 run-time 处添加控件,但一旦表单实例终止,您的更改将不会保留。