Cómo crear emails con un asunto predeterminado en Outlook

Compartir

En algunas ocasiones enviamos correos en diferentes períodos con un mismo asunto o, por razones de nuestro trabajo, manejamos un número de "asuntos" reducido. En estos casos sería útil contar con esos asuntos predeterminados y simplemente poder seleccionar el asunto y darle al botón mensaje nuevo y que se nos abriese un nuevo mensaje con el asunto ya rellenado. Si este es tu caso sigue leyendo que vamos a ver una posible solución para ello.

Lo que vamos a hacer es agregar un cuadro combinado y un botón en la barra principal de Outlook, justo al lado del botón Nuevo. Para ello seguiremos estos pasos: Abrimos Microsoft Office Outlook y pulsamos Alt+F11. Con esto se nos abre el editor de Visual Basic de Outlook. En el explorador de proyectos expandiremos Proyecto1 y luego la carpeta Microsoft Office Outlook. Aparece un elemento llamado ThisOutlook.Session. Si hacemos doble clic sobre él se nos abre una ventana en blanco a la derecha. Es ahí donde colocaremos el código que necesitamos. El código es el siguiente:


 

Dim WithEvents myControl As CommandBarButton

Private Sub Application_Startup()

    Dim oExp As Outlook.Explorer

    Dim oBar As Office.CommandBar

    Dim myControl As CommandBarComboBox

    Dim myControlb As CommandBarButton

    Set oExp = Outlook.ActiveExplorer

    Set oBar = oExp.CommandBars.Item("Standard")

   'Comprobamos si existen los botones

    Set myControl = oBar.FindControl(msoControlComboBox, 1)

    Set myControlb = oBar.FindControl(, 1, "Enviar")

   ' Si no existen los creamos

   If myControl Is Nothing Then

 'Este crea el combobox. Donde pone AddItem añade tus asuntos

        Set myControl = oBar.Controls.Add(Type:=msoControlComboBox, ID:=1, Before:=2)

            With myControl

                .AddItem "First Item", 1

                .AddItem "Second Item", 2

                .DropDownLines = 3

                .DropDownWidth = 75

                .ListHeaderCount = 0

            End With

     'Este crea el botón de enviar mensaje

        Set myControlb = oBar.Controls.Add(, 1, , 3)

        With myControlb

            .Caption = "Enviar mensaje"

            .FaceId = 1757

            .Style = msoButtonIconAndCaption

            .Visible = True

            .Tag = "Enviar"

            .Enabled = True

            .OnAction = "Enviar"

        End With

    End If

End Sub


 Una vez hecho esto, la próxima vez que abramos Outlook nos creará los botones. Pero, hay un problemilla (no podía ser tan fácil). No sale un aviso de macros cada vez que abrimos Outlook a no ser que pongamos la seguridad de macros a nivel bajo y eso no nos interesa. Para evitarlo tenemos que firmar nuestra macro. Para hacerlo de una forma sencilla buscamos en la carpeta de instalación de Office un archivo que se llama Selfcert.exe. Lo ejecutamos y nos creará un certificado. Con el certificado ya creado vamos de nuevo al editor de Visual Basic y allí vamos al menú Herramientas y luego a Firma Digital. Añadimos nuestro certificado y listo.En el botón de enviar el mensaje que hemos creado hay una acción que se ejecutará al pulsarlo. Esa acción será la que nos cree el correo con el asunto predeterminado y nos lo muestre. Por lo tanto tenemos que crear dicha acción y lo haremos mediante una macro.
Bien, seguimos dentro del editor de Visual Basic y nos vamos al menú Insertar y allí elegimos la opción Módulo. Nos crea una nueva carpeta debajo de Proyecto1 llamada Módulo1 (qué original). Ahí pegamos el siguiente código:


Sub Enviar()
Dim oExp As Outlook.Explorer
Dim oBar As Office.CommandBar
Dim myControl As CommandBarComboBox
Dim myControlb As CommandBarButton
Set oExp = Outlook.ActiveExplorer
Set oBar = oExp.CommandBars.Item("Standard")
Set myControl = oBar.Controls.Item(2)
Set myControlb = oBar.Controls.Item(3)
'Si no se ha elegido ningún asunto no se realiza ninguna acción
If myControl.Text = "" Then
    MsgBox "Elige un asunto primero"
    Exit Sub
Else
Dim myOlApp As Outlook.Application
    Dim myItem As Outlook.MailItem
    Dim myRecipient As Outlook.Recipient
    Set myOlApp = CreateObject("Outlook.Application")
    Set myItem = myOlApp.CreateItem(olMailItem)
    myItem.Subject = myControl.Text
myItem.Display
End If
End Sub


 

Y esto es todo. Guardamos, cerramos Outlook, lo abrimos, aceptamos el mensaje de las macros y marcamos la casilla confiar en la fuente y debería funcionar.Parte del código de este texto está sacado de este artículo de la KB de Microsoft: Bueno, eso es todo, hasta otra.

Compartir