Le applicazioni facenti parte del pacchetto Microsoft Office
hanno un linguaggio di programmazione in comune, il Visual Basic.
I programmi scritti in Visual Basic vengono normalmente salvati
insieme ai documenti.
Un esempio di applicazione interessante che agevola il lavoro di
gruppo e la propria organizzazione personale è quella di poter
inviare un messaggio di posta elettronica automaticamente, ovvero
quando succede un certo "evento". Per esempio, quando
un documento viene aperto, salvato, modificato in un certo modo,
stampato ecc. si può attivare un messaggio che notifica qualcuno
(o anche l'esecutore, perché no) di tale evento con dettagli e
dati tratti dal documento in questione.
Per accedere alla zona del Visual Basic da un programma Office,
bisogna attivare il menù Strumenti - Macro - Visual Basic Editor
(per Excel, vedere figura seguente)

Siete entrati nella parte della programmazione in Visual Basic.
Create un nuovo modulo (uno spazio per scrivere un programma) col
menu' Inserisci, opzione Modulo:

Ora siete pronti per scrivere una applicazione in Visual Basic.
Tenete presente che quello che fate viene salvato insieme al
documento Excel/Word/Access, quindi attenti a salvare il
documento alla fine se ci tenete a quello che avete scritto.
Riporto in fondo alla pagina il listato di una routine, che può
essere copiata ed incollata, che quando viene eseguita da una
qualunque applicazione di Office (Excel, Word, Access, Outlook)
spedisce un messaggio di posta elettronica (in questo caso, al
sottoscritto; così avrò vostre notizie. Non esagerate con le
prove o cambiate prima il contenuto della variabile Destinatario).
Funziona sia con gli utenti della posta interna al workgroup (Microsoft
Mail) che con quella Internet. L'applicazione come io l'ho
sviluppata utilizza servizi e routines di Outlook, pertanto
Outlook deve essere installato. Inoltre, occorre attivare una
sola volta per ogni documento, fra i riferimenti, la "libreria
ad oggetti" di Outlook. Attivate col menù "Strumenti"
opzione "Riferimenti" dell'Editor di Visual Basic la
seguente finestra e marcate la casella corrispondente alla "Microsoft
Outlook Object Library" come da figura. Vi eviterà che il
programma segnali un errore tipo "metodo Add fallito"
durante l'esecuzione:

Per suggerimenti, aiuto, critiche e soprattutto applicazioni
personalizzate a prezzi modici, sono a disposizione.
Segue listato del programma tra le due righe orizzontali. Per
poterlo riportare nell'editor di Visual Basic di Outlook si può
semplicemente evidenziare quanto sotto, copiare ed incollare.
Dim ApplOutlook, Task, Dummy2, SuperCartella,
CartellaDiCreazione, Allegato As Object
Dim Dummy As Variant
Sub CreaMessaggio()
'Assegnazione variabili.
Personalizzatevele!
Destinatario = "pankaldi@libero.it"
Oggetto = "Tanti saluti!"
CorpoDelMessaggio = "Questo messaggio è stato creato
automaticamente da un programma in Visual Basic"
Cartella = "Posta in uscita"
'Main
Set ApplOutlook = CreateObject("Outlook.Application")
Set SuperCartella = ApplOutlook.GetNamespace("MAPI")
Set CartellaDiCreazione = SuperCartella.Folders(1).Folders(Cartella)
'l'item viene creato col modello
assegnato alla CartellaDiCreazione
Set Task = CartellaDiCreazione.Items.Add(olMailItem)
'viene creato un item del tipo definito
dal parametro ol.. che deve essere
'congruente con la cartella di crazione
'attenzione: se il programma si blocca
su questa istruzione
'significa che occorre aggiungere la
libreria ad oggetti di Outlook tra i riferimenti
With Task
'da qui in poi vengono
definite le proprietà dell'item
'Set Dummy = .Assign() ' questa
istruzione, applicata ad un elemento olTaskItem assegna
l'attivita'
'a qualcuno e task viene
trasformato in on oggetto di tipo TaskRequestItem
Set Dummy2 = .Recipients.Add(Destinatario) 'viene aggiunto un destinatario all'item
'(che e' la persona a
cui viene mandato il messaggio o assegnato un eventuale task
.Subject = Oggetto
'Set Allegato = .Attachments
'Allegato.Add Application.ActiveWorkbook.FullName,
olByReference, 1, "nome dell'allegato nel messaggio"
.Body = CorpoDelMessaggio
End With
' Task.Display ' viene mostrata la
finestra per editing
Task.Send
'distruzione oggetti
Set ApplOutlook = Nothing
Set Task = Nothing
Set Dummy = Nothing
End Sub