excel - 如何在从 Excel 发送之前在 Outlook 中对电子邮件进行分类
问题描述
我在 Excel 中有一个宏,可以通过 Outlook 发送电子邮件,它运行良好。但在我的公司,他们最近添加了一个电子邮件分类。我可以插入我的代码吗?
示例:如果一次发送 2.000 封电子邮件,我必须在任何分类按钮上单击 2.000 次。
语言为葡萄牙语(巴西),因此按顺序为:机密、保留、内部、公共。
分类:
Sub ContatoAtivo()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Dim OutlookApp As Object
Dim OutlookMail As Object
Dim xTexto As String
Dim Texto As String
Dim X, Y, Z As Integer
Dim Email As String
Dim Assunto As String
Dim Qtd As Integer
Dim rng As Range
Qtd = Planilha2.ListObjects(1).DataBodyRange.Rows.Count
For X = 1 To 1
Email = Planilha2.Cells(X + 6, 8).Value
Subject = Planilha3.Cells(11, 1).Value
If Email <> "" Then
Set rng = Nothing
Set rng = Planilha3.Range("E12:F22").SpecialCells(xlCellTypeVisible)
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
Text = "Test"
With OutlookMail
.To = "test.test@test.com.br"
.CC = ""
.BCC = ""
.Subject = Planilha3.Range("A5").Value & " | " & Subject
.HTMLBody = Text
'.Display
.Send
End With
Set OutlookMail = Nothing
Set OutlookApp = Nothing
Texto = ""
End If
Next X
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
谢谢!
解决方案
这些控件属于 Azure 信息保护加载项。不幸的是,Office(也不是 VBA 或 VSTO)没有提供任何用于自定义自定义 UI 或处理它的简单方法。下面列出了您的选项:
- 尝试使用执行由参数标识的控件的CommandBars.ExecuteMso方法。
idMso
您必须找到需要以编程方式启动的控件的 ID。 - 通过单击 UI 中的相应按钮来询问或查找正在运行的命令。请注意,您可以为此使用延迟投标技术。因此,您可以从 VBA 调用该方法。在演练:从 VBA文章中调用 VSTO 外接程序中的代码中了解更多信息。
- 使用Microsoft Active Accessibility API。Microsoft Active Accessibility 是一种基于组件对象模型 (COM) 的技术,可改进辅助功能与 Microsoft Windows 上运行的应用程序的工作方式。它提供了集成到操作系统中的动态链接库以及一个 COM 接口和 API 元素,这些元素提供了可靠的方法来公开有关 UI 元素的信息。
无论如何,我建议联系 AIP 插件开发人员。
推荐阅读
- tensorflow - 调用 keras 模型作为函数
- javascript - React on conditions 中的多步表单
- java - ConcurrentHashMap.keySet().stream() 的一致性行为
- javascript - 我可以从 ReactJS 中的父元素中检索属性值吗?
- java - 在 Play 2.8 应用程序中检索注入器实例
- c# - 生成唯一标识令牌并存储它们
- r - 距离已知时如何计算每次观测的概率值 -> kmeans R编程
- highcharts - 如何在甜甜圈图表的高图中更改数据标签的样式
- python - 来自深度强化学习的 Pytorch 示例运行速度太慢
- sqlite - 更新 SQLite 表中的一个字段 > 参数问题