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.