【问题标题】:Attaching VBA Form to Outlook Application将 VBA 表单附加到 Outlook 应用程序
【发布时间】:2020-04-23 23:18:13
【问题描述】:

我正在为项目的 Outlook 中的约会创建自定义表单(将餐饮请求添加到会议中)-这是我第一次这样做的牛仔竞技表演-无论我的强度如何(并且失败了) 谷歌福。

打开新约会后,在开发人员选项卡上,我选择“设计此表单”。我转到选项卡“(P.2)”并构建一个愚蠢的简单的两个对象表单... CheckBox1 和 TextBox1。在属性中,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

然后我单击“运行此表单”并查看/单击 CheckBox1,但没有任何反应。如果我能做到这一点,我可能会做生意。但它不会。所以,我正在寻找解决方法。

抓住最后一根稻草,我打开“Visual Basic”并基本上做同样的事情——用相同的两个对象创建一个表单“UserForm1”并添加相同的代码。单击开始按钮,它按预期工作。 TextBox1 以 CheckBox1 状态出现和消失。

因为我可以使代码正常运行,所以我会在 Visual Basic 编辑器中构建我需要的所有内容,但是...问题出在 - 我完全不知道如何获取我创建的表单这里作为选项卡或按钮或其他任何东西进入 Outlook 应用程序。我基本上希望自定义表单VBA editor 成为任何约会中的可选选项。 我看过教程,阅读过文档,看到过一些关于创建宏的东西——但是没有任何东西被写/陈述到足以让我遵循的程度。

所以我的问题是:当在 Outlook 中单击按钮时,如何让 VBA 编辑器中内置的 UserForm1 出现在新约会中?

【问题讨论】:

  • FWIW 条件赋值可以简化为Me.TextBox1.Visible = (Me.CheckBox1.Value)

标签: vba outlook


【解决方案1】:

您需要为 CheckBox 控件添加Click 事件处理程序,而不仅仅是将代码粘贴到您的自定义表单中。

在 2017 年 6 月 13 日的安全更新之后,用户发现已发布的自定义表单不再有效,因为表单背后的 VBScript 和某些控件默认被阻止。有关详细信息,请参阅 Custom Form Security Changes 和 Custom form script is now disabled by default。

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)

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

  1. 点击File > Options。然后选择Trust Center > Trust Center Settings > Email Security。
  2. 在Script in Folders 部分下,单击Allow script in shared folders 和Allow script in Public folders 的复选框,然后再次单击OK 和OK 以关闭窗口。

【讨论】:

  • 注意:更改这些设置会有效地回滚安全漏洞补丁 - 请谨慎应用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-05
  • 2017-10-23
相关资源
最近更新 更多