Ecco un modo in Outlook 2016 su Mac per fare l'equivalente di Windows "Scrivi uno script VB e assegnalo a una chiave". Grazie a coloro che mi hanno indirizzato nella giusta direzione. Su Mac questo è fatto con Applescript, Automator e Scorciatoie da tastiera. Sto includendo l'Applescript qui che sposta le e-mail di Outlook selezionate in una cartella di archivio. Di seguito è riportato anche il VBA originale che stavo cercando di emulare su Mac.
Passaggio 1 - Scrivi Applescript per spostare l'elemento di Outlook selezionato in Archivia
- Premi Comando-Tab per avviare Spotlight Search, digita "Script Editor" su
avviarlo.
- Opzionale: installa un collegamento all'editor di script nel file
Menu Apple come segue. Devi prima essere nell'editor degli script,
quindi nel menu in alto scegli Script Editor- > Preferenze. Poi
nelle preferenze scegli Generale, quindi seleziona (attiva) "Mostra menu Script
nella barra dei menu "e anche" Mostra script di computer ".
-
Inizia con il seguente script. Eseguilo, testalo, giocaci. Cerca altrove aiuto su come cambiarlo per fare esattamente quello che vuoi. Questo script sposta le email attualmente selezionate in una cartella denominata "IZ - Archive". Cambia il nome della cartella per adattarti. C'è molto spazio per migliorare qui. Mi piacerebbe risolvere il problema dei promemoria.
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
Passaggio 2 - Assegna l'Applescript a un servizio utilizzando Automator
- Premi Comando-Tab per avviare la ricerca Spotlight, da lì il lancio
Automator
- In Automator, scegli un tipo per il tuo documento, scegli
"Servizio". Creerai un servizio dal tuo script.
- Nella parte superiore del servizio, imposta le due impostazioni su: Il servizio non riceve input in nessuna applicazione Dal pannello di sinistra, scegli Libreria, quindi nel secondo pannello dall'elenco lungo trova "Esegui Applescript" e trascinalo in la finestra di servizio principale.
-
Copia e incolla la sostituzione di Applescript (* Lo script va qui *)
-
Salva il servizio, dandogli un nome come MoveSelectedOutlookMailToArchive. Non è ovvio come "Salva come" in Automator. Gioca con il menu "File" nella parte superiore dello schermo e fai qualche ricerca su google.
- Il servizio verrà salvato in ~ / Libreria / Servizi / nomeutente
Passaggio 3 - Assegna il servizio a una chiave
- Vai a Scorciatoie da tastiera dal menu di Outlook- > Outlook- > Servizi- > Preferenze Servizi o da Preferenze di Sistema- > Tastiere- > Collegamenti- > Servizi
- Nell'editor Scorciatoie da tastiera seleziona "Servizi" a sinistra, quindi vai in fondo alla sezione "Generale" dove troverai il nuovo servizio.
- Fai clic su di esso e assegna la scorciatoia da tastiera che desideri.
============
Per riferimento e confronto ecco lo script VBA originale che stavo cercando di emulare su Mac. Come puoi vedere, l'Applescript è più conciso e intuitivo, d'altra parte il meccanismo per assegnarlo a un tasto (non mostrato qui) è SEMPRE più facile su 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