如何全面管理我的VBA用户界面的属性?

时间:2017-01-31 05:24:31

标签: vba ms-word userform

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

  1. 查看对象浏览器的所有属性( F2
  2. 查看 部分 属性,并从属性窗口 F4
  3. 进行编辑
  4. 代码窗口手动输入和编辑任何属性( F7
  5. 以下是我的属性和代码窗口的屏幕截图:

    Visual Basic Editor

    我发现的一个问题是 属性窗口只包含UserForm属性的子集 (请注意CanPaste,{{1 }},CanRedo不会出现在属性中),并且在属性窗口中进行的 更改将被覆盖 在代码窗口中进行的更改(例如,在运行时,{em>代码窗口中的CanUndo会覆盖属性中的Me.Caption字段。

    我想我应该完全避免使用属性,然后通过Caption输入所有设置,如上所示。但是(a)对于某些设置,属性会立即进行多项设置。例如,从属性中选择Verdana Bold等于{em> Code 中的UserForm_InitializeFont = Verdana。并且(b)似乎属性将其控制的属性子集设置为其选择的默认值,如果我更改它们,我将无法看到它们的起始位置。

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

    我不是资深的VBA程序员,但我不相信我的经历是独一无二的。我搜索网络是徒劳的,无法找到解决方案。您如何通过更多经验来应对这种困境?

1 个答案:

答案 0 :(得分:4)

您可以使用“属性”窗口在设计时设置外观相关属性。然后,这些属性值将始终应用,除非您在运行时使用VBA代码显式更改它们。

与外观无关的属性(例如CanPasteCanRedo)与运行时时表单的状态相关因此,在设计时将它们配置是没有意义的。

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