Aquí en Outlook 2016 en Mac, hay una forma de hacer el equivalente de Windows "Escribir un script VB y asignarlo a una tecla". Gracias a quienes me apuntaron en la dirección correcta. En Mac, esto se hace con los métodos abreviados de Apple, Automator y teclado. Incluyo el código Apple aquí que mueve los correos electrónicos de Outlook seleccionados a una carpeta de archivo. También se muestra a continuación como referencia el VBA original que intentaba emular en Mac.
Paso 1 : escriba Applescript para mover el elemento de Outlook seleccionado a Archivar
- Presione la tecla Comando para iniciar la búsqueda de Spotlight, escriba "Script Editor" para
lanzarlo.
- Opcional: instale un acceso directo al editor de scripts en el
Menú de Apple de la siguiente manera. Tienes que estar en el editor de scripts primero,
luego, en el menú de la parte superior, seleccione Editor de secuencias de comandos - > Preferencias. Entonces
en preferencias, seleccione General y marque (habilitar) el menú "Mostrar secuencia de comandos"
en la barra de menú "y también" Mostrar guiones de computadora ".
-
Comience con el siguiente script. Ejecútalo, pruébalo, juega con él. Busque ayuda en otro lugar para cambiar esto y hacer exactamente lo que quiere. Esta secuencia de comandos mueve los correos electrónicos seleccionados actualmente a una carpeta llamada "IZ - Archive". Cambia el nombre de la carpeta a tu gusto. Hay mucho espacio para mejorar aquí. Me gustaría resolver el problema de los recordatorios.
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
Paso 2 - Asigna el Applescript a un servicio usando Automator
- Presiona la tecla Comando para iniciar Spotlight Search, desde allí inicia
Automator
- En Automator, elija un tipo para su documento, elija
"Servicio". Va a crear un servicio de su script.
- En la parte superior del servicio, establezca las dos configuraciones en: El servicio no recibe ninguna entrada en ninguna aplicación. En el panel izquierdo, elija Biblioteca, luego en el segundo panel de la lista larga, busque "Ejecutar AppleScript", y arrástrelo hacia La ventana de servicio principal.
-
Copia y pega el reemplazo de tu Applescript (* Tu script va aquí *)
-
Guarde el servicio y asígnele un nombre como MoveSelectedOutlookMailToArchive. No es obvio cómo "Guardar como" en Automator. Juega un poco con el menú “Archivo” en la parte superior de la pantalla y haz un poco de google.
- El servicio se guardará en ~ / Library / Services / yourservicename
Paso 3 : asigne el servicio a una clave
- Vaya a Accesos directos del teclado desde el menú de Outlook - > Outlook - > Servicios- > Preferencias de los servicios o desde Preferencias del sistema- > Teclado- > Accesos directos- > Servicios
- En el editor de métodos abreviados de teclado, seleccione “Servicios” a la izquierda, luego vaya a la parte inferior debajo de la sección “General”, donde encontrará su nuevo servicio.
- Haz clic en eso y asigna el método abreviado de teclado que deseas.
============
Para referencias y comparaciones aquí está el script VBA original que estaba tratando de emular en Mac. Como puede ver, el Applescript es más conciso e intuitivo, por otro lado, el mecanismo para asignarlo a una clave (que no se muestra aquí) es mucho más fácil en la 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