打开Outlook模板时启动Userform

时间:2017-07-14 00:39:04

标签: vba templates outlook outlook-vba userform

我有一个我在Word中创建的用户访问请求表单,现在已被要求在Outlook电子邮件模板中进行复制。此.oft文件将放置在我们的网站上,以便当用户点击该链接时,他们将下载.oft文件。当用户打开文件时,将加载正文中包含用户访问请求表单的电子邮件。

我能够设置书签,并从Word导入Userform,甚至可以在Userform的电子邮件中正确填充所有内容...但是我已经碰壁了。

当我在Developer选项卡中从Visual Basic运行它时,我只能显示Userform

我打算做的是在模板打开后立即弹出Userform,并且只有当用户打开该特定模板时才会弹出{我不想要{{1}如果他们正在尝试创建新电子邮件,或者他们打开Outlook等时打开)。我尝试使用Userform.show代码添加一个模块,我尝试将下面的代码添加到UserForm的代码中,但没有运气。

Userform

您对如何使其正常工作有任何建议吗?

提前致谢!

2 个答案:

答案 0 :(得分:1)

为了实现这一点,您需要在每个用户的PC上显示自定义逻辑。由于您已在Outlook VBA项目中创建了UserForm,因此需要将该表单和支持宏复制到每个用户的Outlook VBA项目中。

通常最好开发一个COM加载项来托管您的逻辑,并使用Windows Installer程序包进行部署。不支持部署存储VBA的.otm文件。

答案 1 :(得分:0)

看起来我能够让它发挥作用。我添加了以下代码:

Private Sub Application_ItemLoad(ByVal Item As Object)
R1AccessRequest.Show vbModeless
End Sub

工作得非常漂亮......直到我将模板发送给同事进行测试...... Userform似乎与我的观点挂钩,并没有出现给他。我们在他的笔记本电脑上打开了VB,看到表格不存在:(从我在网上收集的内容来看,这似乎不太可能。