Imprimir

Cómo crear emails con un asunto predeterminado en Outlook

Escrito por Marta on 19 Abril 2007.

1
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

Comentarios   

 
0 #8 MAURO23 25-08-2011 02:13
BUENAS CON ALGUNOS AJUSTES SE PUDO PROGRAMAR LA MACRO Y FUNCIONA, PERO RESULTA QUE TENGO VARIOS SUBJECTS PREDETERMINADOS QUE DEBO ENVIAR, SERIA POSIBLE CREAR UN "PICK LIST DETRAS DEL BOTON ENVIAR DONDE SE SELECCIONE EL SUBJECT PREDETERMINADO QUE REQUIERO ENVIAR. URGENTE POR FAVOR GRACIAS
Citar
 
 
0 #7 IvánRG 24-01-2011 09:03
Hola, no consigo cambiar los items a seleccionar como asunto para el correo, a que puede ser debido?

Muchas gracias. Saludos.
Citar
 
 
0 #6 Guest 11-11-2009 00:00
hola disculpa deseo configurar en microsoft outlook 2007 que siempre que envie un correo a cualquier destinatario sea cual sea, ese correo llegue a otro correo predeterminado, es decir que me envie una copia de ese correo que envie a una direccion predeterminada y que lo haga automaticamente , que no tenga que escribir esa direccion siempre que valla a enviar un correo, te agradeceria
Citar
 
 
0 #5 Guest 27-09-2008 00:37
Funciona perefectamente. ....Muchas Gracias....
Citar
 
 
0 #4 Guest 27-02-2008 17:24
viejo tengo una inquietud. tendrías el código para programar un envío periódico en el correo de outlook. es decir tengo un mensaje que lo envío dos veces a la semana, todas las semanas de los meses (es el mismo mensaje). como hago o cual seria el código para automatizar este envío. gracias, espero puedas ayudarme.
Citar
 
 
0 #3 Guest 04-06-2007 19:13
ojala me puedas contestar este mensaje.

actualmente estoy desarrollando un modulo de una aplicacion en vb, esta aplicacion manda un numero N de direcciones de correo a Outlook.

lo que deseo es poder enviar un documento de word o una plantilla en el contenido del correo de outlook y no como adjunto.

saludos....
Citar
 
 
0 #2 Guest 24-04-2007 09:48
Cito a Linda:
he votado bueno y votar y no sale el voto , Saludos Linda
[smiley=sad]


Linda funcionar, funciona pero no actualiza muy rapido, Ahora mismo ya tiene dos votos este articulo. [smiley=happy]
Citar
 
 
0 #1 Guest 24-04-2007 09:41
he votado bueno y votar y no sale el voto , Saludos Linda
[smiley=sad]
Citar
 

Escribir un comentario


Código de seguridad
Refescar

jTweet

Autentíficate

Gente Online

Hay 169 invitados y ningún miembro en línea