Attribute VB_Name = "EsportaTask" Sub ExportTasksToTextFile() Dim olApp As Outlook.Application Dim olNamespace As Outlook.NameSpace Dim olFolder As Outlook.Folder Dim olItems As Outlook.Items Dim olItem As Outlook.TaskItem Dim olAccounts As Outlook.Accounts Dim olSecondaryAccount As Outlook.Account Dim filePath As String Dim fileNum As Integer Dim taskCount As Integer ' Crea un'istanza di Outlook Set olApp = New Outlook.Application Set olNamespace = olApp.GetNamespace("MAPI") Set olAccounts = olNamespace.Accounts ' Seleziona l'account secondario (assumendo che sia il secondo nell'elenco) If olAccounts.Count > 1 Then Set olSecondaryAccount = olAccounts.Item(2) Else MsgBox "Non č stato trovato un account secondario. Lo script verrā terminato." Exit Sub End If ' Tenta di ottenere la cartella delle attivitā per l'account secondario On Error Resume Next Set olFolder = olNamespace.Folders(olSecondaryAccount.DeliveryStore.DisplayName) If olFolder Is Nothing Then MsgBox "Non č stato possibile trovare la cartella principale dell'account secondario. Lo script verrā terminato." Exit Sub End If ' Tenta di trovare la cartella delle attivitā Set olFolder = olFolder.Folders("Attivitā") If olFolder Is Nothing Then Set olFolder = olFolder.Folders("Tasks") End If If olFolder Is Nothing Then Set olFolder = olNamespace.GetDefaultFolder(olFolderTasks) End If On Error GoTo 0 If olFolder Is Nothing Then MsgBox "Non č stato possibile trovare la cartella delle attivitā. Lo script verrā terminato." Exit Sub End If Set olItems = olFolder.Items ' Specifica il percorso del file di output filePath = "C:\Users\Mauro Gagliardi\Dropbox\Assistente_Personale_Mauro\Sistema_Assistente\tasks_export.md" ' Apri il file per la scrittura fileNum = FreeFile Open filePath For Output As #fileNum ' Itera attraverso le attivitā e scrivile nel file taskCount = 0 For Each olItem In olItems If TypeName(olItem) = "TaskItem" Then ' Verifica se il task non č completato If olItem.status <> olTaskComplete Then Print #fileNum, "Oggetto: " & olItem.Subject Print #fileNum, "Stato: " & GetTaskStatusText(olItem.status) Print #fileNum, "Prioritā: " & GetTaskImportanceText(olItem.importance) Print #fileNum, "Scadenza: " & Format(olItem.DueDate, "dd/mm/yyyy") Print #fileNum, "-----------------------------" taskCount = taskCount + 1 End If End If Next olItem ' Chiudi il file Close #fileNum ' Pulisci gli oggetti Set olItems = Nothing Set olFolder = Nothing Set olNamespace = Nothing Set olApp = Nothing 'MsgBox "L'esportazione delle attivitā non completate č terminata." & vbNewLine & _ taskCount & " attivitā esportate." & vbNewLine & _ "Il file č stato salvato in: " & filePath End Sub Function GetTaskStatusText(status As OlTaskStatus) As String Select Case status Case olTaskNotStarted GetTaskStatusText = "Non iniziato" Case olTaskInProgress GetTaskStatusText = "In corso" Case olTaskWaiting GetTaskStatusText = "In attesa" Case olTaskDeferred GetTaskStatusText = "Rinviato" Case Else GetTaskStatusText = "Stato sconosciuto" End Select End Function Function GetTaskImportanceText(importance As OlImportance) As String Select Case importance Case olImportanceLow GetTaskImportanceText = "Bassa" Case olImportanceNormal GetTaskImportanceText = "Normale" Case olImportanceHigh GetTaskImportanceText = "Alta" Case Else GetTaskImportanceText = "Sconosciuta" End Select End Function