Aquí hay una forma en Outlook 2016 en Mac de hacer el equivalente a Windows "Escribir un VB script y asignarlo a una tecla". Gracias a los que me indicaron la dirección correcta. En Mac esto se hace con Applescript, Automator y Keyboard Shortcuts. Incluyo aquí el Applescript que mueve los correos electrónicos de Outlook seleccionados a una carpeta de archivo. También se muestra a continuación para la referencia es el VBA original que estaba tratando de emular en Mac.
Paso 1 - Escribir Applescript para mover el elemento seleccionado de Outlook al Archivo
- Pulse Comando-Tab para iniciar la búsqueda en Spotlight, escriba "script Editor" para lanzarlo.
- Opcional: Instale un acceso directo al editor de script en el menú de Apple de la siguiente manera. Primero tienes que estar en el editor script, luego en el menú de la parte superior elija script Editor->Preferencias. Luego en las preferencias elija General, y marque (active) "Mostrar scriptmenú en la barra de menús" y también "Mostrar los del ordenador".
-
Comienza con el siguiente script. Ejecútalo, pruébalo, juega con él. Busque en otra parte ayuda para cambiar esto para hacer exactamente lo que quiere. Este script mueve el(los) correo(s) actualmente seleccionado(s) a una carpeta llamada "IZ - Archivo". Cambia el nombre de la carpeta a tu gusto. Hay mucho margen de mejora 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 - Asignar el Applescript a un servicio utilizando Automator
-
Presione Comando-Tabulación para iniciar la búsqueda en Spotlight, desde allí inicie Automator
-
En Automator, elija un tipo de documento, elija "Servicio". Creará un servicio desde su script.
-
En la parte superior del servicio, establezca los dos ajustes: El servicio no recibe ninguna entrada en ninguna aplicación En el panel de la izquierda, elija Biblioteca, luego en el segundo panel de la lista larga encuentre "Ejecutar Applescript", y arrástrelo a la ventana principal del servicio.
-
Copie y pegue su Applescript reemplazando (* Su script va aquí *)
-
Guarde el servicio, dándole un nombre como MoveSelectedOutlookMailToArchive. No es obvio cómo "Guardar como" en Automator. Juega con el menú "Archivo" en la parte superior de la pantalla y busca en Google.
-
El servicio se guardará en ~/Library/Services/ su nombre de servicio
Paso 3 - Asignar el servicio a una clave
- Vaya a Atajos de teclado desde el menú Outlook->Outlook->Servicios->Preferencias de servicios o desde Preferencias del sistema->Teclado->Atajos de teclado->Servicios
- En el editor de atajos de teclado elija "Servicios" a la izquierda, luego vaya a la parte inferior en la sección "General" donde encontrará su nuevo servicio.
- Haga clic en él y asigne el atajo de teclado que desee.
\============
Para referencia y comparación aquí está el VBA original script que estaba tratando de emular en Mac. Como puedes ver, el Applescript es más conciso e intuitivo, por otro lado el mecanismo para asignarlo a una tecla (no se muestra aquí) es MUCHO más fácil en 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
0 votos
Sé que Outlook admite Applescript, pero deduzco que sus utilidades son bastante limitadas. También es compatible con VBA parece: datanumen.com/blogs/run-vba-code-outlook
1 votos
El artículo de datanumen es sobre Windows. Miraré Applescript, gracias por sugerirlo.
0 votos
En primer lugar, ¡bienvenido a Ask Different! :) Espero que encuentres en este sitio un recurso valioso. Desafortunadamente, tanto Outlook como OneNote no soportan VBA en el Mac (aunque Excel, PowerPoint y Word sí). Dado que en realidad sólo quieres mover los mensajes de la bandeja de entrada a una carpeta, ¿hay alguna razón por la que la configuración de una regla (o reglas) no satisfaga tus necesidades? Lo pregunto porque puede ayudar a aclarar tu pregunta.
0 votos
@Monomeeth el objetivo es mover cientos de correos electrónicos (diarios) a carpetas usando atajos de teclado, porque es mucho más rápido, fácil y menos propenso a errores hacerlo así que arrastrándolos con el ratón. También tengo reglas que hacen esto, pero este requisito es para aquellos correos que no se tratan con reglas. Es una tarea humana, y los scripts y los atajos de teclado lo hacen un orden de magnitud más fácil.