这是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分配给服务
步骤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