Per raggiungere tale scopo è possibile utilizzare VBA:
- Avviare Outlook;
- Dal menu File->Opzioni selezionare Personalizzazione barra multifunzione;
- Nell'elenco Schede principali (sulla destra) aggiungere il segno di spunta alla voce Sviluppo e cliccare su OK;
FIG 1 - Outlook, Personalizza barra multifunzione - Avviare Microsoft Visual Basic, Application Edition tramite la combinazione di tasti ALT+F11;
- Nella visualizzazione ad albero del progetto, sul lato sinistro della finestra, selezionare ThisOutlookSession;
FIG 2 - Outlook, Microsoft Visual Basic Application Edition - Copiare e incollare il seguente script;
Private Sub Application_Startup() Dim olExp As Outlook.Explorer Dim objInbox As Folder Dim objCalendar As Folder Dim objContacts As Folder Dim objTasks As Folder Set objInbox = Application.ActiveExplorer.CurrentFolder Set objCalendar = Session.GetDefaultFolder(olFolderCalendar) Set objContacts = Session.GetDefaultFolder(olFolderContacts) Set objTasks = Session.GetDefaultFolder(olFolderTasks) 'Apre la cartella Contatti in una finestra di Outlook ridotta ad icona (olMinimized) objContacts.Display Set olExp = Application.ActiveExplorer With olExp .WindowState = olMinimized End With 'Apre la cartella Attività in una finestra di Outlook ridotta ad icona (olMinimized) objTasks.Display Set olExp = Application.ActiveExplorer With olExp .WindowState = olMinimized End With 'Apre la cartella Calendario in una finestra normale di Outlook (olNormalWindow) objCalendar.Display Set olExp = Application.ActiveExplorer With olExp .WindowState = olNormalWindow End With 'Apre la cartella Posta in arrivo in una finestra massimizzata di Outlook (olMaximized) objInbox.Display Set Application.ActiveExplorer.CurrentFolder = objInbox Set olExp = Application.ActiveExplorer olExp.WindowState = olMaximized End Sub
- Attraverso la proprietà WindowState di Outlook.Explorer è possibile indicare se aprire la cartella in una finestra normale (olNormalWindow), ridotta (olMinimized) o ingrandita (olMaximized). Salvare lo script cliccando sull'apposita icona e ritornare alla finestra di Outlook;
- Dalla scheda Sviluppo cliccare su Sicurezza macro;
FIG 3 - Outlook, Sicurezza macro - Dalla finestra Centro protezione, nella sezione Impostazioni macro, selezionare Visualizza notifiche per tutte le macro. In questo modo all'avvio di Outlook verrà richiesto se eseguire la macro.
FIG 4 - Outlook, Visualizza notifiche per tutte le macro
Ad. es volendo aprire la finestra con il Calendario di Outlook, spostarla in altro a sinistra dello schermo e impostare la dimensione 800x1000 lo script è il seguente:
Private Sub Application_Startup() Dim olExp As Outlook.Explorer Dim objInbox As Folder Dim objCalendar As Folder Dim objContacts As Folder Dim objTasks As Folder Set objInbox = Application.ActiveExplorer.CurrentFolder Set objCalendar = Session.GetDefaultFolder(olFolderCalendar) Set objContacts = Session.GetDefaultFolder(olFolderContacts) Set objTasks = Session.GetDefaultFolder(olFolderTasks) 'Apre la cartella Contatti in una finestra di Outlook ridotta ad icona (olMinimized) objContacts.Display Set olExp = Application.ActiveExplorer With olExp .WindowState = olMinimized End With 'Apre la cartella Attività in una finestra di Outlook ridotta ad icona (olMinimized) objTasks.Display Set olExp = Application.ActiveExplorer With olExp .WindowState = olMinimized End With 'Apre la cartella Calendario in una finestra normale di Outlook (olNormalWindow) objCalendar.Display Set olExp = Application.ActiveExplorer With olExp .WindowState = olNormalWindow .Top = 0 .Left = 0 .Height = 800 .Width = 1000 End With 'Apre la cartella Posta in arrivo in una finestra massimizzata di Outlook (olMaximized) objInbox.Display Set Application.ActiveExplorer.CurrentFolder = objInbox Set olExp = Application.ActiveExplorer olExp.WindowState = olMaximized End Sub
Se si vogliono aprire più finestre di Outlook in modo che siano sfalsate tra loro come mostrato in FIG 5, il codice da copiare è il seguente:
Private Sub Application_Startup() Dim objInbox As Folder Dim objCalendar As Folder Dim objContacts As Folder Dim objTasks As Folder Set objInbox = Application.ActiveExplorer.CurrentFolder Set objCalendar = Session.GetDefaultFolder(olFolderCalendar) Set objContacts = Session.GetDefaultFolder(olFolderContacts) Set objTasks = Session.GetDefaultFolder(olFolderTasks) objCalendar.Display objContacts.Display objTasks.Display Dim olExps As Outlook.Explorers Set olExps = Application.Explorers Dim oTop As Long, oLeft As Long oTop = 100 oLeft = 200 For x = 1 To olExps.Count With olExps.Item(x) .WindowState = olNormalWindow .Top = oTop .Left = oLeft .Height = 800 .Width = 1000 End With oTop = oTop + 50 oLeft = oLeft + 50 Next x Set Application.ActiveExplorer.CurrentFolder = objInbox End Sub
FIG 5 - Outlook, Finestre sfalsate |