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?

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top