Introducció

En aquest tema, aprendrem com utilitzar VBA per automatitzar tasques a Microsoft Outlook. Això pot incloure enviar correus electrònics, gestionar calendaris, crear contactes i molt més. Automatitzar Outlook amb VBA pot estalviar molt de temps i augmentar la productivitat, especialment per a tasques repetitives.

Configuració inicial

Abans de començar a programar, necessitem assegurar-nos que tenim les referències correctes configurades a l'editor VBA.

  1. Obre l'Editor VBA:

    • A Excel, prem Alt + F11 per obrir l'Editor VBA.
  2. Afegeix la referència a l'objecte d'Outlook:

    • A l'Editor VBA, ves a Eines > Referències.
    • Busca i selecciona Microsoft Outlook XX.0 Object Library (on XX.0 és la versió d'Outlook que tens instal·lada).
    • Fes clic a Acceptar.

Enviar un correu electrònic amb VBA

Comencem amb un exemple senzill: enviar un correu electrònic.

Exemple de codi

Sub EnviarCorreu()
    Dim OutlookApp As Object
    Dim Correu As Object
    
    ' Crea una instància de l'aplicació Outlook
    Set OutlookApp = CreateObject("Outlook.Application")
    
    ' Crea un nou correu electrònic
    Set Correu = OutlookApp.CreateItem(0)
    
    ' Configura les propietats del correu
    With Correu
        .To = "[email protected]"
        .Subject = "Assumpte del correu"
        .Body = "Aquest és el cos del correu."
        .Send
    End With
    
    ' Allibera els objectes
    Set Correu = Nothing
    Set OutlookApp = Nothing
End Sub

Explicació del codi

  1. Crear una instància de l'aplicació Outlook:

    Set OutlookApp = CreateObject("Outlook.Application")
    

    Això crea una nova instància de l'aplicació Outlook.

  2. Crear un nou correu electrònic:

    Set Correu = OutlookApp.CreateItem(0)
    

    CreateItem(0) crea un nou correu electrònic.

  3. Configurar les propietats del correu:

    With Correu
        .To = "[email protected]"
        .Subject = "Assumpte del correu"
        .Body = "Aquest és el cos del correu."
        .Send
    End With
    

    Aquí configurem el destinatari (.To), l'assumpte (.Subject), el cos del correu (.Body) i finalment enviem el correu (.Send).

  4. Alliberar els objectes:

    Set Correu = Nothing
    Set OutlookApp = Nothing
    

    Això allibera els objectes per evitar fuites de memòria.

Gestionar el calendari d'Outlook

A més d'enviar correus electrònics, també podem gestionar el calendari d'Outlook. A continuació, veurem com crear una nova cita al calendari.

Exemple de codi

Sub CrearCita()
    Dim OutlookApp As Object
    Dim Cita As Object
    
    ' Crea una instància de l'aplicació Outlook
    Set OutlookApp = CreateObject("Outlook.Application")
    
    ' Crea una nova cita
    Set Cita = OutlookApp.CreateItem(1)
    
    ' Configura les propietats de la cita
    With Cita
        .Subject = "Reunió important"
        .Location = "Sala de conferències"
        .Start = DateAdd("d", 1, Now) ' Demà a aquesta hora
        .Duration = 60 ' Durada en minuts
        .Body = "Aquesta és una reunió important."
        .BusyStatus = 2 ' Ocupat
        .ReminderMinutesBeforeStart = 15 ' Recordatori 15 minuts abans
        .Save
    End With
    
    ' Allibera els objectes
    Set Cita = Nothing
    Set OutlookApp = Nothing
End Sub

Explicació del codi

  1. Crear una instància de l'aplicació Outlook:

    Set OutlookApp = CreateObject("Outlook.Application")
    
  2. Crear una nova cita:

    Set Cita = OutlookApp.CreateItem(1)
    

    CreateItem(1) crea una nova cita.

  3. Configurar les propietats de la cita:

    With Cita
        .Subject = "Reunió important"
        .Location = "Sala de conferències"
        .Start = DateAdd("d", 1, Now) ' Demà a aquesta hora
        .Duration = 60 ' Durada en minuts
        .Body = "Aquesta és una reunió important."
        .BusyStatus = 2 ' Ocupat
        .ReminderMinutesBeforeStart = 15 ' Recordatori 15 minuts abans
        .Save
    End With
    

    Aquí configurem l'assumpte (.Subject), la ubicació (.Location), l'hora d'inici (.Start), la durada (.Duration), el cos de la cita (.Body), l'estat d'ocupació (.BusyStatus) i el recordatori (.ReminderMinutesBeforeStart).

  4. Alliberar els objectes:

    Set Cita = Nothing
    Set OutlookApp = Nothing
    

Exercicis pràctics

Exercici 1: Enviar un correu electrònic amb adjunt

Escriu un codi VBA que enviï un correu electrònic amb un fitxer adjunt.

Solució

Sub EnviarCorreuAmbAdjunt()
    Dim OutlookApp As Object
    Dim Correu As Object
    
    ' Crea una instància de l'aplicació Outlook
    Set OutlookApp = CreateObject("Outlook.Application")
    
    ' Crea un nou correu electrònic
    Set Correu = OutlookApp.CreateItem(0)
    
    ' Configura les propietats del correu
    With Correu
        .To = "[email protected]"
        .Subject = "Assumpte del correu amb adjunt"
        .Body = "Aquest és el cos del correu amb un fitxer adjunt."
        .Attachments.Add "C:\ruta\al\fitxer.txt"
        .Send
    End With
    
    ' Allibera els objectes
    Set Correu = Nothing
    Set OutlookApp = Nothing
End Sub

Exercici 2: Crear una cita recurrent

Escriu un codi VBA que creï una cita recurrent setmanalment durant un mes.

Solució

Sub CrearCitaRecurrent()
    Dim OutlookApp As Object
    Dim Cita As Object
    
    ' Crea una instància de l'aplicació Outlook
    Set OutlookApp = CreateObject("Outlook.Application")
    
    ' Crea una nova cita
    Set Cita = OutlookApp.CreateItem(1)
    
    ' Configura les propietats de la cita
    With Cita
        .Subject = "Reunió setmanal"
        .Location = "Sala de reunions"
        .Start = DateAdd("d", 1, Now) ' Demà a aquesta hora
        .Duration = 60 ' Durada en minuts
        .Body = "Aquesta és una reunió setmanal."
        .BusyStatus = 2 ' Ocupat
        .ReminderMinutesBeforeStart = 15 ' Recordatori 15 minuts abans
        
        ' Configura la recurrència
        With .GetRecurrencePattern
            .RecurrenceType = 1 ' Setmanal
            .Interval = 1 ' Cada setmana
            .Occurrences = 4 ' Durant un mes (4 setmanes)
        End With
        
        .Save
    End With
    
    ' Allibera els objectes
    Set Cita = Nothing
    Set OutlookApp = Nothing
End Sub

Conclusió

En aquest tema, hem après com automatitzar tasques a Outlook utilitzant VBA. Hem vist com enviar correus electrònics, crear cites i configurar recurrències. Aquests coneixements poden ser molt útils per automatitzar tasques repetitives i millorar la productivitat. En el següent tema, explorarem com accedir a bases de dades amb VBA.

© Copyright 2024. Tots els drets reservats