5 votos

¿Existe algo parecido a las macros en Outlook 2016 en Mac?

En Outlook en Windows tengo un VBA script que mueve uno o más mensajes de la Bandeja de Entrada a una carpeta, unido a un atajo de teclado que uso para mover muy rápidamente cientos de correos electrónicos a donde quiero cada día.

¿Existe alguna función así en Outlook en Mac? No estoy seguro de cómo formular la pregunta, no quiero ser demasiado estrecho preguntando "¿Existe VBA y Macros en Outlook en Mac?" cuando obviamente no existe, pero ¿hay alguna otra forma de enfocar este problema, automatizando cosas y asignando atajos de teclado a tareas personalizadas?

Edición: Un comentario mencionó Applescript. (Soy un novato en Mac). Entonces encontré este artículo al activar el icono de Applescript y este artículo sobre el uso de Applescript para crear una tarea a partir de un mensaje. No es exactamente lo que quiero pero es un GRAN paso adelante. Ahora estudiaré Applescript y el uso que hace Outlook de él y si llego a algo, responderé a mi propia pregunta.

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.

4voto

user3557732 Puntos 46

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

1 votos

Has dicho: "El servicio se guardará en /Library/Services/", que no es la ubicación correcta, se guardan en /Users/$USER/Library/Services/ o para abreviar: ~/Library/Services/

0 votos

Tenga en cuenta que para la tarea específica que uso en el ejemplo anterior, mover los correos electrónicos seleccionados a un archivo, Outlook 2016 para Mac ahora tiene una funcionalidad incorporada que es una carpeta de Archivo y un botón de Archivo. Esos son suficientes para esa tarea. El procedimiento anterior, sin embargo, es aplicable a cualquier tarea personalizada, sólo tienes que encontrar el applescript apropiado para hacer lo que quieres.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X