Mac上的Outlook 2016中是否有类似宏的内容?


3

在Windows上的Outlook中,我有一个VBA脚本,可将一个或多个消息从收件箱移动到文件夹,并附加到键盘快捷方式,我可以使用该快捷方式将数百封电子邮件每天快速移动到我想要的位置。

Mac上的Outlook是否有类似的功能?我不确定该如何表达这个问题,我不想太狭narrow地询问“ Mac上的Outlook中是否存在Mac上的VBA和宏”,但是否有其他方法可以解决此问题,自动化事情并为个性化任务分配键盘快捷键?

编辑:一条评论提到Applescript。(我是Mac的新手)。后来我发现这篇文章扶持的AppleScript的图标,这篇文章对使用AppleScript创建一个从信息的任务。那不是我想要的,但这是巨大的进步。现在,我将研究Applescript和Outlook对它的使用,如果我学到任何地方,都会回答我自己的问题。


我知道Outlook支持Applescript,但我认为它的实用程序相当有限。它似乎也支持VBA:datanumen.com/blogs/run-vba-code-outlook
Steve Chambers

datanumen文章是有关Windows的。我将看一下Applescript,谢谢您的建议。
jay613

首先,欢迎问不同!:)希望您能发现此站点是宝贵的资源。不幸的是,Outlook和OneNote在Mac上均不支持VBA(尽管Excel,PowerPoint和Word都支持)。由于您实际上只是想将邮件从收件箱移动到文件夹,因此设置规则(或多个规则)不能满足您的需求吗?我问,因为这可能有助于进一步澄清您的问题。
Monomeeth

@Monomeeth的目标是使用键盘快捷键(每天)将数百封电子邮件移动到文件夹,因为这样做比用鼠标拖动它们要快得多,容易得多并且出错的可能性也小得多。我确实也有执行此操作的规则,但是此要求适用于那些规则未处理的电子邮件。这是一项人工任务,脚本和键盘快捷键使它的工作变得简单了许多。
jay613 '18

Answers:


3

这是Mac上的Outlook 2016中的一种等效于Windows“写入VB脚本并将其分配给键”的方法。感谢那些为我指明了正确方向的人。在Mac上,这是通过Applescript,Automator和键盘快捷键完成的。我在此处包含了Applescript,可将选定的Outlook电子邮件移动到存档文件夹。下面还显示了供参考的是我试图在Mac上模拟的原始VBA。

步骤1 –编写Applescript,将选定的Outlook项目移至“存档”

  • 按Command-Tab启动Spotlight搜索,键入“脚本编辑器”启动它。
  • 可选:如下所示在Apple菜单中安装脚本编辑器的快捷方式。您必须首先在脚本编辑器中,然后在顶部的菜单中选择“脚本编辑器”->“首选项”。然后在首选项中选择“常规”,然后选中(启用)“在菜单栏中显示脚本菜单”和“显示计算机脚本”。
  • 从以下脚本开始。运行它,测试它,然后玩它。在其他地方寻求帮助,以更改此设置以完全满足您的要求。该脚本将当前选定的电子邮件移动到名为“ IZ –存档”的文件夹。更改文件夹名称以适合您自己。这里还有很多改进的空间。我想解决提醒问题。

    tell application "Microsoft Outlook"
        -- get the currently selected message or messages
        -- NOTE in this version it fails if the Outlook Reminder window is open, even if you select a message in the main window.
        set selectedMessages to current messages
    
        -- if there are no messages selected, warn the user and then quit
        if selectedMessages is {} then
            display dialog "Please select a message first and then run this script." with icon 1
            return
        end if
    
        set aMessage to item 1 of selectedMessages
        set emailAcct to account of aMessage
        set inBoxFolder to folder "Inbox" of emailAcct
        set ArchiveFolder to folder "IZ - Archive" of inbox
    
        repeat with theMessage in selectedMessages
            move theMessage to IZArchiveFolder
        end repeat
    end tell
    

第2步 –使用Automator将Applescript分配给服务

  • 按Command-Tab键启动Spotlight搜索,然后从此处启动Automator
  • 在Automator中,为您的文档选择一种类型,然后选择“服务”。您将通过脚本创建服务。
  • 在服务的顶部,将两个设置设置为:服务在任何应用程序中均不接收任何输入在左侧面板中,选择“库”,然后在长列表的第二个面板中找到“运行Applescript”,并将其拖到主服务中窗口。
  • 复制并粘贴您替换的Applescript(*您的脚本在这里*)

  • 保存服务,为其命名,如MoveSelectedOutlookMailToArchive。如何在Automator中“另存为”并不明显。在屏幕顶部的“文件”菜单中播放并进行一些谷歌搜索。

  • 该服务将保存在〜/ Library / Services / yourservicename下

步骤3 –将服务分配给密钥

  • 从Outlook菜单-> Outlook->服务->服务首选项或从系统首选项->键盘->快捷方式->服务转到键盘快捷键
  • 在“键盘快捷方式”编辑器中,选择左侧的“服务”,然后转到“常规”部分下方的底部,您将在其中找到新服务。
  • 单击该按钮,然后分配所需的键盘快捷键。

============

供参考和比较,这是我试图在Mac上模拟的原始VBA脚本。如您所见,Applescript更加简洁直观,另一方面,在PC上将其分配给键(此处未显示)的机制更加简单。

'Outlook VB Macro to move selected mail item(s) to a target folder
Sub MoveToIZArchive()
On Error Resume Next

Dim ns As Outlook.NameSpace
Dim moveToFolder As Outlook.MAPIFolder
Dim objItem As Outlook.MailItem

Set ns = Application.GetNamespace("MAPI")

'Define path to the target folder
Set moveToFolder = ns.GetDefaultFolder(olFolderInbox).Folders("IZ - Archive")

If Application.ActiveExplorer.Selection.Count = 0 Then
   MsgBox ("No item selected")
   Exit Sub
End If

If moveToFolder Is Nothing Then
   MsgBox "Target folder not found!", vbOKOnly + vbExclamation, "Move Macro Error"
End If

For Each objItem In Application.ActiveExplorer.Selection
   If moveToFolder.DefaultItemType = olMailItem Then
      If objItem.Class = olMail Then
         'objItem.UnRead = False
         objItem.Move moveToFolder
      End If
  End If
Next

Set objItem = Nothing
Set moveToFolder = Nothing
Set ns = Nothing

End Sub

1
您说,“该服务将保存在/ Library / Services /下”,这不是正确的位置,它们保存在/Users/$USER/Library/Services/以下简称中:~/Library/Services/
user3439894
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.