Я пишу VSTO, которому нужно получить выбранный текст из электронного письма и что-то с ним делать. Я нашел / изменил некоторый код, который отлично работает, чтобы получить текст из тела письма IFF в виде обычного текста. Если текст находится в таблице, кажется, что он возвращает только первую выбранную ячейку. Если я пытаюсь проверить Application.Selection.Range.Cells, он возвращает часть таблицы, но включает выбранные ячейки и не включает все ячейки. Кто-нибудь знает, как получить выделенные клетки? Вот базовый код, который работает для получения выделенного текста из тела письма:
Dim objExplorer As Outlook.Explorer = Globals.ThisAddIn.Application.ActiveExplorer()
'Get the current MailItem
Dim mailItem As Outlook.MailItem = TryCast(objExplorer.Selection(1), Outlook.MailItem)
'Get the current TaskItem
Dim taskItem As Outlook.TaskItem = TryCast(objExplorer.Selection(1), Outlook.TaskItem)
'Get current ContactItem
Dim contactItem As Outlook.ContactItem = TryCast(objExplorer.Selection(1), Outlook.ContactItem)
'Get the current AppointmentItem
Dim appointmentItem As Outlook.AppointmentItem = TryCast(objExplorer.Selection(1), Outlook.AppointmentItem)
Dim inspector As Outlook.Inspector = Nothing
If (mailItem IsNot Nothing) Then
'Obtain Inspector object for the current MailItem
inspector = mailItem.GetInspector
ElseIf (taskItem IsNot Nothing) Then
'Obtain Inspector object for the current TaskItem
inspector = taskItem.GetInspector
ElseIf (contactItem IsNot Nothing) Then
'Obtain Inspector object for the current NoteItem
inspector = contactItem.GetInspector
ElseIf (appointmentItem IsNot Nothing) Then
'obtain Inspector object for the current AppointmentItem
inspector = appointmentItem.GetInspector
End If
If inspector Is Nothing Then
MsgBox("Please open an item to scan.", vbOKOnly + vbExclamation)
Return ""
End If
' Obtain the Document object from the Inspector object
Dim document As word.Document = inspector.WordEditor
'Store the selected text to a variable
Dim selectedText As String = If(document.Application.Selection IsNot Nothing, document.Application.Selection.Text, "")