将VBA表单附加到Outlook应用程序

将VBA表单附加到Outlook应用程序,vba,outlook,Vba,Outlook,我正在为Outlook中的一个项目(将餐饮请求添加到会议中)的约会创建一个自定义表单——这是我第一次这样做——不管我的Google Fu是否紧张(并且失败),我都会大显身手 打开新约会后,在“开发人员”选项卡上,我选择“设计此表单”。我转到tab“(第2页)”并构建一个愚蠢的简单的两对象表单。。。选中框1和文本框1。在属性中,TextBox1.Visible为False。单击查看代码并输入以下内容 Private Sub CheckBox1_Click() if CheckBox1

我正在为Outlook中的一个项目(将餐饮请求添加到会议中)的约会创建一个自定义表单——这是我第一次这样做——不管我的Google Fu是否紧张(并且失败),我都会大显身手

打开新约会后,在“开发人员”选项卡上,我选择“设计此表单”。我转到tab“(第2页)”并构建一个愚蠢的简单的两对象表单。。。选中框1和文本框1。在属性中,TextBox1.Visible为False。单击查看代码并输入以下内容

   Private Sub CheckBox1_Click()
    if CheckBox1.value=True Then
      Me.TextBox1.Visible = True
     Else Me.TextBox1.Visible = False
    End If  
   End sub
然后单击“运行此表单”并查看/单击复选框1,但什么也没有发生。如果我能做到这一点,我可能会做生意。但不会。所以,我想找一份工作

抓着稻草,我打开“VisualBasic”,基本上做了同样的事情——用相同的两个对象创建一个表单“UserForm1”,并添加相同的代码。单击go按钮,它将按预期工作。文本框1会出现,并随着CheckBox1状态消失

由于我可以使代码发挥作用,我将在Visual Basic编辑器中构建所需的一切,但是。。。这里有一个问题-我完全不知道如何将我在这里创建的表单作为选项卡或按钮或任何东西放到Outlook应用程序中。我基本上希望自定义表单在任何约会中都是可选的选项。 我看过一些教程,读过doc,看到了一些关于创建宏的东西,但是没有任何东西被写下来或陈述得足够简单,我无法理解


因此,我的问题是:当在Outlook中单击按钮时,如何使内置于VBA编辑器中的UserForm1显示在新约会中?

您需要为复选框控件添加
单击事件处理程序,而不仅仅是将代码粘贴到自定义表单中

2017年6月13日安全更新后,用户发现已发布的自定义表单不再工作,因为表单后面的VBScript和某些控件在默认情况下被阻止。有关更多信息,请参阅和

Microsoft已禁用自定义表单脚本功能。如果需要启用它,则需要设置两个键,一个用于启用脚本,另一个键带有每个表单的消息类名,每个表单后面都有代码。例如:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\16.0\Outlook\Security
DWORD: DisableCustomFormItemScript
Value: 0 (to enable)

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\16.0\Outlook\Forms\TrustedFormScriptList
REG_SZ: IPM.Contact.custom-form-name
Value: (leave blank)

在某些情况下,在注册表项设置之后,辅助邮箱和公用文件夹中的表单仍然无法工作。要解决此问题,请在信任中心中启用脚本:

  • 单击
    文件
    选项
    。然后选择信任中心
  • 信任中心设置
    电子邮件安全
  • 文件夹中的脚本
    部分下,单击
    允许共享文件夹中的脚本
    允许公共文件夹中的脚本
    复选框,然后再次单击
    确定
    确定
    ,关闭窗口

  • FWIW条件分配可以简化为
    Me.TextBox1.Visible=(Me.CheckBox1.Value)
    注意:更改这些设置会有效回滚安全漏洞修补程序-小心应用。