Il sito è trasferito su

www.dimodo.net

Grafica rinnovata, nuovi contenuti e disponibilità di articoli in inglese!

venerdì 26 aprile 2013

Esportazione dei singoli contatti Outlook

Stranamente, Outlook non facilita la vita a chi voglia esportare singoli contatti, attività che molti trovano utile per condividere contatti o farne copie di sicurezza.
Certo, da Outlook è possibile trascinare i contatti selezionati in una cartella ma si incontrano due principali problemi: non è possibile esportare nel formato vCard e non è possibile scegliere il formato dei nomi dei file (utile, ad esempio, quando interessa che la società e il ruolo del contatto siano evidenti dal nome del file).
Fortunatamente Outlook consente di essere notevolmente personalizzato tramite Visual Basic. Purtroppo, non si tratta di un'attività semplice, per chi non è un programmatore, quindi voglio proporre una macro, facile da inserire in Outlook, che risolve quest'esigenza. Con un po' di studio è possibile adattarla più dettagliatamente alle proprie esigenze.

La macro che propongo consente di esportare i contatti selezionati in formato Outlook o vCard. Richiamando la macro da una cartella contatti (creandone magari il tasto relativo sulla barra multifunzione, per comodità) essa esporterà tutti i contatti selezionati nella cartella c:\temp\outlook (ricordatevi di crearla prima manualmente).
Per semplicità faremo riferimento solo ad Outlook 2013. La macro si applica anche ad Outlook 2010 ma potrebbero esserci leggere differenze nelle voci di menu delle istruzioni successive.

Di seguito, il codice della macro. Dopo la macro, se non siete pratici di Visual Basic, riporto le istruzioni per aggiungere la macro ad Outlook.

Sub ExportContactsSelection()
    Dim o As Object
    If Application.ActiveExplorer.Selection.Count > 0 Then
        For Each o In Application.ActiveExplorer.Selection
            If TypeOf o Is Outlook.ContactItem Then
                Dim item As Outlook.ContactItem
                Set item = o
                Dim fileName As String
                fileName = item.CompanyName
                If Len(item.FirstName) > 0 And Len(item.LastName) > 0 Then
                    If Len(fileName) > 0 Then
                        fileName = fileName & " - "
                    End If
                    fileName = fileName & item.FirstName & " " & item.LastName
                ElseIf Len(item.FirstName) > 0 Then
                    If Len(fileName) > 0 Then
                        fileName = fileName & " - "
                    End If
                    fileName = fileName & item.FirstName
                ElseIf Len(item.LastName) > 0 Then
                    If Len(fileName) > 0 Then
                        fileName = fileName & " - "
                    End If
                    fileName = fileName & item.LastName
                End If
                If Len(fileName) > 0 And Len(item.JobTitle) > 0 Then
                    fileName = fileName & " (" & item.JobTitle & ")"
                End If
                fileName = Replace(fileName, "/", "-")
                fileName = Replace(fileName, "?", "")
                ' export Outlook
                item.SaveAs "c:\temp\outlook\" & fileName & ".msg", olMSGUnicode
                ' export vCard
                ' item.SaveAs "c:\temp\outlook\" & fileName & ".vcf", olVCard
            End If
        Next
        Shell "explorer c:\temp\outlook", vbNormalFocus
    End If
End Sub


Ora dobbiamo innanzitutto attivare la scheda Sviluppo, se non è già visibile:
  1. Accedere alla personalizzazione della barra multifunzione tramite il menu contestuale (tasto destro del mouse) della barra stessa.
  2. Selezionare la scheda Sviluppo nel riquadro a destra.
Successivamente dobbiamo attivare le macro:
  1. Accedere alla scheda File.
  2. Selezionare Opzioni.
  3. Selezionare Centro protezione.
  4. Selezionare Impostazioni centro protezione.
  5. Selezionare Impostazioni macro.
  6. Selezionare Attiva tutte le macro.
Infine, possiamo aggiungere la macro con i seguenti passi:
  1. Accedere alla scheda Sviluppo.
  2. Richiamare Visual basic.
  3. Inserire un nuovo modulo nella cartella Moduli del riquadro di progetto.
  4. Copiare la macro nel nuovo modulo.
A questo punto non ci resta che aggiungere un tasto sulla barra multifunzione che richiami la nuova macro:
  1. Accedere alla personalizzazione della barra multifunzione tramite il menu contestuale (tasto destro del mouse) della barra stessa.
  2. Nella tendina Scegli comandi da, selezionare Macro.
  3. Selezionare la nuova macro.
  4. Selezionare nel riquadro a destra la scheda e il gruppo nei quali aggiungere il nuovo tasto.
  5. Infine premere Aggiungi.

2 commenti: