Makro VBA, um den ausgewählten text in Outlook 2003
-
25-09-2019 - |
Frage
Ich versuche, mit diesem code-snippet, um den ausgewählten text in outlook 2003
Sub SelectedTextDispaly()
On Error Resume Next
Err.Clear
Dim oText As TextRange
''# Get an object reference to the selected text range.
Set oText = ActiveWindow.Selection.TextRange
''# Check to see whether error occurred when getting text object
''# reference.
If Err.Number <> 0 Then
MsgBox "Invalid Selection. Please highlight some text " _
& "or select a text frame and run the macro again.", _
vbExclamation
End
End If
''# Display the selected text in a message box.
If oText.Text = "" Then
MsgBox "No Text Selected.", vbInformation
Else
MsgBox oText.Text, vbInformation
End If
End Sub
Beim ausführen dieses makro bekomme ich die Fehlermeldung
---------------------------
Microsoft Visual Basic
---------------------------
Compile error:
User-defined type not defined
Muss ich fügen Sie alle Referenzen, um dies zu beheben up?
Lösung
@Kusleika, ich habe versucht, die option, die Sie vorgeschlagen hatte und immer noch der gleiche Fehler kam.Danke für die Hilfe
Kann sein, ich hatte nicht formuliert meine Frage in der richtigen Weise
Etwas mehr googeln ergab, dass es nicht mehr möglich um den ausgewählten text einer E-mail im Vorschaufenster. http://www.eggheadcafe.com/forumarchives/outlookprogram_VisualBasica/Aug2005/post23481044.asp
Also musste ich anpassen die Anforderung, so dass ich tun kann, eine Aktion aus einer E-mail-Element-Fenster.
Der folgende code hat mir geholfen (hatte einige änderungen vornehmen, um meine Bedürfnisse)
Sub Blue_Code_Highlight()
Dim msg As Outlook.MailItem
Dim insp As Outlook.Inspector
Set insp = Application.ActiveInspector
If insp.CurrentItem.Class = olMail Then
Set msg = insp.CurrentItem
If insp.EditorType = olEditorHTML Then
Set hed = msg.GetInspector.HTMLEditor
Set rng = hed.Selection.createRange
rng.pasteHTML "<font style='color: blue; font-family:Times New Roman; font-size: 10pt;'>" & rng.Text & "</font><br/>"
End If
End If
Set insp = Nothing
Set rng = Nothing
Set hed = Nothing
Set msg = Nothing
End Sub
Quelle:http://www.outlookcode.com/threads.aspx?forumid=4&messageid=26992
@Kusleika vielen Dank für die Hilfe, ich kann diesen thread schliessen.Pls lassen Sie mich wissen.
Andere Tipps
Für den Fall, jemand das Wort Editor anstelle von HTML verwendet, können Sie auch diesen Teil einfügen:
If insp.EditorType = olEditorWord Then
Set hed = msg.GetInspector.WordEditor
Set word = hed.Application
Set rng = word.Selection
rng.Font.Name = "Times New Roman"
rng.Font.Size = 10
rng.Font.Color = wdColorBlack
End If
ähnlich zu erhalten, wenn Wort der Editor. Ich habe versucht, dies in einem Kommentar zu der akzeptierten Antwort einzufügen, aber es zerstört die Formatierung und war ziemlich nutzlos, so Posting als Antwort.
Dim oText As Range
Textrange ist eine Eigenschaft des Objekts Textframe. Es gibt ein Range-Objekt. Es gibt kein Textrange-Objekt.