我创建一个表单,其中所有凭据都由访问它的任何人自动填充。但是,我在尝试获取用户的电子邮件地址时遇到困难。
Set olApp = CreateObject("Outlook.Application")
Set olNS = olApp.GetNamespace("MAPI")
UserEmail = olNS.CurrentUser.AddressEntry.GetExchangeUser.PrimarySmtpAddress
这一行可能需要某些用户的PC花费>1分钟,而在其他用户的PC上花费几秒钟。 例如,如果花费超过 5 秒,有没有办法跳过它?
我正在考虑按时申请应用程序,但不知道如何从那里开始。
VBA 不是为运行多线程调用而设计的。如果要优化 Outlook VBA 解决方案的性能,可以考虑改为创建 COM 加载项。有关详细信息,请参阅第 12 章:将 VBA 解决方案迁移到 VSTO。
在访问地址条目对象之前,我建议获取地址属性值。它返回一个字符串,表示收件人的电子邮件地址。如果它对应于SMTP地址,则可以跳过不必要的呼叫。