Sto utilizzando VBA per formattare tutti i messaggi di posta elettronica in uscita in un determinato modo prima dell'invio. Ad esempio, voglio rimuovere la prima colonna da tutte le tabelle che sono incorporate nell'e-mail. Io uso il seguente codice:Outlook Ottieni altre email nel thread di posta elettronica - UniqueBody
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
Dim wd As Word.Document
Set wd = ActiveInspector.WordEditor
Dim tb As Word.Table
For Each tb In wd.Tables
tb.Columns(1).Delete
Next tb
End Sub
Il codice sopra funziona perfettamente. Tuttavia, il problema è che voglio solo formattare il testo dell'email my. Spesso risponderò o inoltrerò l'email di qualcun altro, il che significa che il testo dell'email precedente sarà nella stessa finestra dell'Inspector. I non voglio formattare il testo/immagini/ecc. delle e-mail precedenti nella discussione. Come può essere realizzato?
So che ogni e-mail all'interno di un thread, sebbene siano tutti nella stessa finestra, è una singola unità. Lo so perché quando si legge un messaggio di posta che fa parte di un filo, come si sposta il mouse, si vedrà
sul lato destro dello schermo, indicando dove la parte successiva del filo è . Quando componi una nuova email (reply o forward) che fa parte del thread, i pulsanti sopra non sono mostrati, ma vedrai comunque una linea orizzontale blu che separa le diverse parti del thread l'una dall'altra.
Stavo pensando che forse posso cercare la prima occorrenza della riga nell'e-mail e applicare solo la formattazione fino a quel momento. Tuttavia, sembra che la linea non sia realmente un testo o una normale formattazione che sia ricercabile nel senso normale. Infatti, se si copia il testo dell'email (prima dell'invio) e quindi si incolla in Word, la riga scompare.
Qualche suggerimento? Grazie!
Aggiornamento
La mia domanda non ha nulla a che fare con la "visualizzazione per conversazione" che si trova nelle versioni 2010 e successive. Outlook 2010 consente di visualizzare il altro e-mail nella discussione in un gruppo. Quello che voglio, tuttavia, è essere in grado di scorrere (tramite codice) le e-mail nella discussione all'interno della stessa e-mail. Quindi, se c'era una e-mail "a", e poi una risposta, "b", e poi un'altra risposta, "c", c conterrà anche b sotto di essa, e quindi sotto, tutti all'interno della stessa e-mail . In pseudo-codice, vorrei il seguente:
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
Dim wd As Word.Document
Dim smail as SubEmail
Dim tb As Word.Table
Set wd = ActiveInspector.WordEditor
For Each smail in wd
For Each tb In wd.Tables
tb.Columns(1).Delete
Next tb
Exit For
Next smail
End Sub
Aggiornamento
ho trovato una funzionalità simile in Exchange Web Services, chiamato UniqueBody. Vedi here. Questo è esattamente quello che sto cercando, non solo con Exchange.
Quale versione di Outlook una versione di ciò che si vuole esiste di default nella versione dopo Outlook 2" 010 –
@Ramhound, vedere il mio aggiornamento – as9876