Vba 打开Outlook模板时启动Userform

Vba 打开Outlook模板时启动Userform,vba,templates,outlook,userform,Vba,Templates,Outlook,Userform,我有一个在Word中创建的用户访问请求表单,现在被要求在outlook电子邮件模板中复制。这个.oft文件将放在我们的网站上,这样当用户点击链接时,他们将下载.oft文件。当用户打开文件时,将加载正文中包含用户访问请求表单的电子邮件 我可以设置书签,从Word导入Userform,甚至可以从Userform在电子邮件中正确填充所有内容……但是我遇到了麻烦 我只能在“开发人员”选项卡中的Visual Basic中运行Userform时显示它 我想做的是在模板打开后立即弹出Userform,并且只有

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

我可以设置书签,从Word导入
Userform
,甚至可以从
Userform
在电子邮件中正确填充所有内容……但是我遇到了麻烦

我只能在“开发人员”选项卡中的Visual Basic中运行
Userform
时显示它

我想做的是在模板打开后立即弹出
Userform
,并且只有在用户打开特定模板时才会弹出(我不希望
Userform
在用户尝试创建新电子邮件或打开outlook时打开)。我尝试过用Userform.show代码添加一个模块,我也尝试过将下面的代码添加到Userform的代码中,但没有成功

Private Sub UserForm_Activate()
UserForm1.Show
End Sub
你对我如何使它正常工作有什么建议吗


提前谢谢

看来我能让它工作了。我添加了以下代码:

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

工作得很漂亮。。。直到我将模板发送给同事进行测试。。。Userform似乎与我的outlook绑定,并且没有为他显示。我们打开他的笔记本电脑上的VB,发现表单不存在:(从我在网上收集到的信息来看,这似乎是不可能的。

您需要在每个用户的PC上显示自定义逻辑才能正常工作。由于您已在Outlook VBA项目中创建了用户表单,因此您需要将该表单和支持宏复制到每个用户的Outlook VBA项目中

通常,最好开发COM加载项来承载逻辑,并使用Windows Installer软件包进行部署。不支持在存储VBA的位置部署.otm文件