notaio informatico Riccardo Ricciardi

Outlook comunica con Word e Access  tramite VBA (Visual Basic for Application) ed è quindi possibile con un semplice click su un pulsante eseguire le seguenti macro da me appositamente scritte;

Archivia Mail in Access

Può essere utile archiviare in un database di Access in C.\ Posta.mdb  alcune voci  (data di ricezione - mittente - oggetto - testo della mail) di una o più mail selezionate in Outlook

 Leggi Mail in Word

In Word per leggere comodamente un testo conviene attivare dal Menù Visualizza il Layout "Lettura", che visualizza  il file come in un leggio.

Tale funzionalità in Outlook non esiste, pur attivando come Editor di posta lo stesso Word.

Per leggere con Layout "lettura" una mail molto lunga e magari scritta con caratteri piccoli, bisognerebbe selezionare tutto il testo, copiarlo, aprire Word, incollarvi il testo copiato e visualizzarlo con tale Layout.

La macro "LeggiInWord", previa selezione di una qualunque mail, senza aprirla, copia il testo (body), apre un file di Word vuoto, vi incolla il testo copiato, ingrandisce i caratteri (Font.size =16) e visualizza il file di Word con Layout Lettura.

Ascolta Mail

Per ascoltare automaticamente (per 30 secondi: la PauseTime può essere variata nel codice di cui appresso) in Outlook una mail appena ricevuta nella cartella "Posta in arrivo" o una mail selezionata in una qualunque cartella ho creato due apposite macro che sfruttano le funzionalità di "sintesi vocale" di Windows XP aggiornate con il programma  "RSSolo4ItalianSilvia.exe" scaricabile da questa pagina:

 http://www.notaioricciardi.it/programmi%20eseguibili.htm

 

Librerie necessarie:

 

Procedura: ALT F11 - Strumenti - Riferimenti: selezionare e salvare con OK: Microsoft Word esistente nel computer (Word 11 è quella di Word 2003) per leggere la mail in Word, Microsoft DAO 3.6 Obiect Library per comunicare con un database di Access  e Microsoft Speech Obiect Library per la sintesi vocale (dopo aver installato la voce italiana di Silvia con "RSSolo4ItalianSilvia.exe" di cui sopra.

 

Il download:  ArchiviaLeggiAscoltaMail.zip contiene il database Posta.mdb da copiare in C:\ nonché i file "Modulo1.bas" e "Modulo2.bas" contenenti le macro e il form "frmSintesiVocale.frm", da installare in Outlook con la seguente procedura:

1) aprire in Outlook con ALT + F11 l'editor VBA e selezionare con click destro il Progetto1 (VBAProject.OTM) in modo che appaia in Menù: Importa file che consente l'importazione di Modulo1.bas; ma bisogna importare, con la stessa procedura anche il Modulo2.bas (che contiene delle variabili globali) e il form "frmSintesiVocale", previa individuazione della cartella dove  è stato dezippato il file;

2) fare doppio click su Modulo1 (che compare dopo l'avvenuta importazione) in modo che aperto il codice della Macro si possa biffare (facendo scorrere la barra verticale fino ad individuarla) dal Menu Strumenti - Riferimenti le librerie Microsoft Word esistente nel computer (Word 11 è quella di Word 2003) e Microsoft DAO 3.6 Obiect Library (o equivalenti) per comunicare con un database di Access.

3)  la macro di lettura della mail in arrivo  viene lanciata, previa esecuzione della routine di inizializzazione  Sub AvviaAscoltoUltimaMail() appena Outlook riceve una nuova mail e quindi perché funzioni bisogna copiare il seguente codice  nel modulo già esistente, dopo averlo aperto con doppio click, "ThisOutookSession" della cartella "Microsoft Office Outook Oggetti" di Progetto1 (VBAProject.OTM)  di VBA (apribile con ALT F11); per disattivare l'ascolto di nuove mail in ricezione bisognerà eseguire la routine Sub ChiudiAscolto()

Il codice da copiare (Copia-Incolla), per intero, è il seguente  in verde:

Public WithEvents outApp As Outlook.Application


Sub AvviaAscoltoUltimaMail()

 Set outApp = Application

End Sub


Sub ChiudiAscolto()

 Set outApp = Nothing

End Sub

Private Sub outApp_NewMail()

' leggi mail appena arriva

Dim myOlExp As Outlook.Explorer

Dim myOlSel As Outlook.Selection

Dim x As Integer

Set myOlExp = outApp.ActiveExplorer
Set myNamespace = outApp.GetNamespace("MAPI")
Set myFolder = outApp.GetNamespace("MAPI").GetDefaultFolder(olFolderInbox)
Set myItems = myFolder.Items()


Glo_Messaggio = 0

For Each myItem In myItems

Glo_Messaggio = Glo_Messaggio + 1

Next

Set myItem = myFolder.Items(Glo_Messaggio)

Glo_Testo = "Mail avente per oggetto: " & myItem.Subject & "inviata da: " & myItem.SenderName & ", il cui testo è: " & myItem.Body

Glo_Testo = CleanMail(strDirty:=Glo_Testo)

Dim Voice As SpVoice

Set Voice = New SpVoice

Voice.Speak Glo_Testo, SVSFlagsAsync

PauseTime = 30
Start = Timer
Do While Timer < Start + PauseTime
DoEvents
Loop
Finish = Timer

Set myOlExp = Nothing

End Sub

 

Tutte le macro potranno essere eseguite dal Menù: Strumenti - Macro - Macro: Esegui Macro, ma conviene creare un Nuovo Menu con questa  procedura:

Dal Menu di Outlook Strumenti - Personalizza - Comandi selezionare l'ultima voce Nuovo menu e trascinarlo, tenendo premuto il tasto sinistro del Mouse, nella barra degli strumenti Standard, 

In questo Menu si potranno aggiungere i pulsanti relativi alle cinque  macro che si potranno eseguire:

1) ArchiviaMail per archiviare nel database C:\Posta.mdb le mail selezionate

2) LeggiInWord per leggere una qualunque mail selezionata in Word con Layout lettura

3) MailSelezionata per ascoltare dalla voce di "Silvia" una qualunque mail selezionata, previa apertura del form "SintesiVocale"

4) ThisOutlookSession.AvviaAscoltoUltimaMail, per inizializzare, dopo aver aperto Outlook e quando si vuole, la macro automatica di ascolto in ricezione di una mail in Posta in arrivo

5) ThisOutlookSession.ChiudiAscolto, per disattivare la macro di cui sopra senza dover chiudere e riaprire Outlook.

 

 

Selezionando i pulsanti appena creati potranno essere abbreviati i nomi (click destro) e cambiate le icone.