Esempi di collegamenti tra applicazioni Office

    

    Esempi su collegamenti tra applicazioni Office.

    Esempio 1
    Creiamo una nuova cartella di lavoro Excel ed apriamo un modulo di codice in VBA. Inseriamo il codice seguente e proviamo ad eseguire le due routine (posizionandoci sull'istruzione sub e premendo F5) in ordine casuale.
    	'Dichiaro una variabile oggetto pubblica
    	Public AppWd As Word.Application
    
    	Sub MacroCreate()
    		'
    		'Se errore continua con istruzione successiva
    		On Error Resume Next
    		Set AppWd = GetObject(, "Word.application")
    		'Verifica se è stata creata 
    		'l''istanza dell''oggetto Word Application
    		If AppWd Is Nothing Then
    		    'Se non esiste una applicazione word in esecuzione
    		    Set AppWd = CreateObject("Word.application")
    		    MsgBox "usa la CREATE"
    		Else
    		    MsgBox "usa la GET"
    		End If
    		'Se non usassi visible avvierebbe 
    		'l''applicazione in background
    		AppWd.Visible = True
    		'
    	End Sub		
    
    	Sub MacroQuit()
    		'
    		With AppWd
    		'Verifica se esiste l''istanza 
    		'dell''oggetto Word Application
    		    If AppWd Is Nothing Then
    		        MsgBox "Oggetto AppWd inesistente", _ 
    			vbExclamation, "Attenzione!"
    		    Else
    		        MsgBox "Word verrà chiuso", vbInformation
    		        Set AppWd = Nothing
    		        .Quit
    		    End If
    		End With
    		'
    	End Sub
    	
    La routine "MacroCreate" valuta se esiste una istanza dell'applicazione AppWd, altrimenti ne crea una nuova. La routine "MacroQuit" chiude l'istanza se ne esiste una, altrimenti da un messaggio di errore.
    Esempio 2
    Creiamo una nuova cartella Excel ed apriamo un modulo di codice in VBA. Inseriamo il codice seguente e proviamo ad eseguire la routine, posizionandoci sull'istruzione sub e premendo F5.
    	Sub MacroMail()
    		Dim oOutlook As Outlook.Application
    		Dim oMessage As Outlook.Mailitem
    		Set oOutlook = CreateObject("Outlook.Application")
    		Set oMessage = oOutlook.CreateItem(olMailItem)
    		With oMessage
    		    .To = "Nome@prova.it"
    		    .Subject = "Prova"
    		    .Body = "Prova di messaggio"
    		    .Attachments.Add "C:\Progetti VBA\prova.doc", _
    		    , , "prova"
    		    .Display
    		    .Send
    		End With
    		oOutlook.Quit
    	End Sub
    	
    La routine genera due variabili oggetto: una nuova istanza dell'applicazione Outlook ed un nuovo messaggio di posta. All'interno dell'istruzione with sono gestiti: il destinatario, il soggetto ed il corpo dell'e-mail. Il metodo "Attachments.Add" inserisce un file allegato al messaggio. Il metodo send infine invia il messaggio di posta elettronica.
    Avremmo potuto estrapolare i dati della mail dalle celle del foglio Excel attivo, invece di assegnarli direttamente alle variabili, in questo modo:
    	With oMessage
    		.To = Range("B2")
    		.Subject = Range("B3")
    		.Body = Range("B4")
    		.Display
    		.Send
    	End With
    	
    N.B. Il messaggio verrà inviato solo se sul pc è impostata la connessione di posta per Microsoft Outlook.