首页 > 解决方案 > 如果在两台计算机上打开相同的 Outlook 会话,则在特定计算机上运行宏

问题描述

我有两台电脑,一台处理自动报告和发送电子邮件,另一台用来做我的工作。两者都在我的会话中打开了 Outlook。

有时办公室更新,或外部应用程序崩溃,我的自动报告已完成。

我找到了可以通过接收带有特定主题的电子邮件来帮助重新启动一切的代码。

Outlook 会在报表计算机或我的工作计算机上运行宏吗?

我可以强制它在报表计算机上运行吗?

Option Explicit

Private Sub Application_NewMail()

    Dim exApp As New Excel.Application
    Dim wb As Excel.Workbook

    Dim Msg As Outlook.MailItem

    Set Msg = Application.GetNamespace("MAPI").GetDefaultFolder(olFolderInbox).Items.GetLast
    If Msg.Subject = "Reinicia todo" Then
        CerrarProcesos
        Set wb = exApp.Workbooks.Open("C:\Users\UserName\Desktop\Alertas Renfe.xlsb")
        exApp.Visible = True
    End If

End Sub


Sub CerrarProcesos()

    Dim oServ As Object
    Dim cProc As Variant
    Dim oProc As Object

    Set oServ = GetObject("winmgmts:")
    Set cProc = oServ.ExecQuery("Select * from Win32_Process")

    For Each oProc In cProc 'Case Sensitive
        If oProc.Name Like "Acs*.exe" Or oProc.Name Like "acs*.exe" Or oProc.Name Like "ACS*.exe" Or oProc.Name Like "EXCEL*" Then
          oProc.Terminate
        End If
    Next

End Sub

标签: vbaoutlook

解决方案


推荐阅读