Office: (Office 2013) Formatieren von Text über VBA möglich und wie?

Helfe beim Thema Formatieren von Text über VBA möglich und wie? in Microsoft Word Hilfe um das Problem gemeinsam zu lösen; Hallo alle zusammen, nach langer Recherche ohne Erfolg habe ich mich entschlossen hier meine Frage zu stellen. Also, ich habe in Word 2013 ein... Dieses Thema im Forum "Microsoft Word Hilfe" wurde erstellt von nebur, 17. Januar 2018.

  1. Formatieren von Text über VBA möglich und wie?


    Hallo alle zusammen,

    nach langer Recherche ohne Erfolg habe ich mich entschlossen hier meine Frage zu stellen.

    Also, ich habe in Word 2013 ein Formular mit Hilfe von Steuerelementen und XML erstellt, das mir die Möglichkeit gibt durch Wahl einer von 7 Parametern, relevante Textpassagen zu ändern. Nun hab ich noch den Anspruch die Texte in den Steuerelementen zu formatieren. Texte in einem Steuerelement kann ich leider nur einer Formatvorlage zuordnen. Kann ich das vllt direkt auf Visual Basic machen?

    Meine Frage gibt es eine Möglichkeit den Captiontext direkt im Visual Basic auf einzelne Formatvorlagen zuzuweisen? Wie bei HTML? Ich möchte das zum Beispiel einige Zahlen untergestellt werden und einige Zeilen der Formatvorlage Überschrift 3 zugeordnet wird. Wenn ich das normal im Word Dokument versuche wird die Änderung auf das ganze Steuerelement übernommen.

    Any Ideas?

    Code:
    :)
     
  2. Gerhard H
    Gerhard H Erfahrener User
    Hallo nebur,

    wenn du statt Nur-Text-Inhaltssteuerelementen Rich-Text-Elemente verwendest, kannst du echte Absätze (Chr(13)) statt nur Zeilenumbrüchen (Chr(11)) eintragen und die auch absatzweise formatieren. Hochgestellte Zahlen kannst du gleich als solche im Makro definieren (z.B. ist Chr(179) eine hochgestellte 3)
    Beispiel:
    Code:
     
    Gerhard H, 19. Januar 2018
    #2
  3. Danke Gerhard,
    ich bin leider nicht so gut mit vb. Ich verstehe immer noch nicht ganz wie ich dem "Sub=beschrifte" mitteile, dass er bei Case = "SO2" im Word als SO2 darstellen soll. Oder generell dass er die einzelnen Vergleichsmessverfahren unterscheiden soll.

    Sollte ich vielleicht mehr Tags hinzufügen A,B,C,D,E,F... und die dann als Vergleichsmessverfahren1,....2,....3,usw. festlegen?

    Sub beschrifte()
    Dim eintrag As String kommt vielleicht statt "eintrag zB CO oder NO rein?
    Dim CC As ContentControl

    Set CC = ActiveDocument.SelectContentControlsByTag("Vergleichsmessverfahren1").Item(1) wie sag ich dass der Sub auf den text von zB.: case ="so2"- Vergleichsmessungen zugreifen soll?

    'Text-Absätze eintragen
    eintrag = "Hwie kann ich den 2er tiefstellen? fontgröße ändern? kann ich auch das direkt hier machen?2O2-Thorin-Methode" & Chr(11) & _
    "6.4.1 Geräte der Vergleichsmessungen" & Chr(11) & _
    "- Entnahmesonde: xx" & Chr(11) & _
    "..."

    CC.Range.Text = eintrag

    'zweiten Absatz formatieren
    CC.Range.Paragraphs(2).Range.Style = "Überschrift 3"
    'alternativ direkt formatiert:
    'CC.Range.Paragraphs(2).Range.Font.Size = 15
    End Sub

    man das ist schwerer als ich dachte...*frown.gif*
     
  4. Gerhard H
    Gerhard H Erfahrener User

    Formatieren von Text über VBA möglich und wie?

    Hallo nebur,

    das Makro aus Beitrag 2 war nur ein einfaches Beispiel von dem ich hoffte, du kannst es selber anpassen. Aber es war in mehrfacher Hinsicht ein Schnellschuss:

    Zunächst mal eine Korrektur zu den hoch-/tiefgestellten Zahlen am Beispiel deines Makros unter Case CO:

    Die hochgestellte 3 bei mg/m³ kannst du einfach unter Verwendung der Taste AltGr und der Taste 3 direkt in den Code eintippen. Hochgestellte ² analog.

    Bei tiefergestellten Zahlen ist es nicht so einfach. Du brauchst dazu Unicode: Die tiefgestellte 2 bei "Eichung: C02" ginge so:
    "Eichung: CO" & ChrW(CLng("&H" & 2082)) & "..."

    Für eine tiefergestellte drei notiere 2083 usw.

    Der Eintrag zum Vergleichsmessverfahren bei CO sieht dann so aus:
    Code:
    Zum Formatieren einzelner Absätze: Ich hatte dir empfohlen, dafür Rich-Text-Inhaltssteuerelemente zu verwenden. Das funktioniert aber nicht im Zusammenhang mit eingezogenen Absätzen, so dass du stattdessen eine Tabelle verwenden musst.

    Der Formatierungsbefehl steht dann mit in der letzten Schleife:
    Code:
    Das hat aber nur Sinn, wenn immer der gleiche Absatz (z.B. immer der zweite) formatiert werden soll. Und Fehler können auftreten, wenn es diesen Absatz nicht gibt (was man aber abfangen könnte).

    Ich häng ein entsprechendes Dokument an. Aber die hoch- und tiefgestellten Zahlen hab ich nur für den Fall CO eingerichtet. Die anderen kannst du ja nach demselben Strickmuster einrichten.
     
    Gerhard H, 25. Januar 2018
    #4
  5. hallo Gehard,

    Danke vielmals, ich hab das jetzt super hinbekommen.*Smilie Jedoch hat mir das mit dem Formatierungsbefehl nicht wirklich viel genutzt, weil sich die Überschriftszeilen pro Parameter unterscheiden.

    Ich hab das so gelöst indem ich Tags C und D erstellt habe und meine Überschrift in Steuerelement C übertragen und den restlichen Text in D eingefügt habe. Dadurch gibt es aber einen weiteren Schönheitsfehler:
    Bei Parametern, die die Tags C und D nicht benötigen (zB.: CO) sind die leere Steuerelemente noch zusehen die man extra löschen muss.

    Gibt es einen Befehl die in dem Fall unsichtbar oder am Besten ganz zu entfernen damit kein großer Freiraum im Dokument zu sehen bleibt?

    Code:
     
  6. Gerhard H
    Gerhard H Erfahrener User
    Hallo nebur,

    du könntest die Steuerelemente, die leer geblieben sind (d.h. noch den Platzhaltertext tragen, weil Titel = ""), ausgeblendet formatieren.

    Der Umstand, dass die mit Überschrift 3 zu formatierenden Inhaltssteuerelemente Gliederungsnummern haben, macht das Ganze ein bisschen unhandlich, denn die werden nicht mit ausgeblendet. Aber so sollte es gehen (am Beispiel des Elements mit dem Tag "C"):

    Code:
     
    Gerhard H, 26. Januar 2018
    #6
Thema:

Formatieren von Text über VBA möglich und wie?

Die Seite wird geladen...
  1. Formatieren von Text über VBA möglich und wie? - Similar Threads - Formatieren Text VBA

  2. Formatieren von Text in Zellen

    in Microsoft Excel Tutorials
    Formatieren von Text in Zellen: Formatieren von Text in Zellen Excel für Microsoft 365 Excel für Microsoft 365 für Mac Excel für das Web Excel 2019 Excel 2016 Excel 2019 für Mac...
  3. Formatieren von Text in Kopf- oder Fußzeilen

    in Microsoft Excel Tutorials
    Formatieren von Text in Kopf- oder Fußzeilen: Formatieren von Text in Kopf- oder Fußzeilen Excel für Microsoft 365 Excel 2019 Excel 2016 Excel 2013 Mehr... Weniger...
  4. Formatieren von Zahlen als Text in Excel für Mac

    in Microsoft Excel Tutorials
    Formatieren von Zahlen als Text in Excel für Mac: Formatieren von Zahlen als Text in Excel für Mac Excel für Microsoft 365 für Mac Excel 2019 für Mac Excel 2016 für Mac Mehr... Weniger...
  5. Hinzufügen und Formatieren von Text

    in Microsoft Word Tutorials
    Hinzufügen und Formatieren von Text: Hinzufügen und Formatieren von Text in Microsoft Word im Web Hinzufügen von Bildern, Onlinegrafiken und Tabellen Wählen Sie die Registerkarte Einfügen aus. Wählen Sie aus, was Sie einfügen...
  6. Hinzufügen und Formatieren von Text

    in Microsoft Word Tutorials
    Hinzufügen und Formatieren von Text: Hinzufügen und Formatieren von Text Word für Microsoft 365 Word 2019 Word 2016 Word 2013 Word 2010 Word Starter 2010 Mehr... Weniger...
  7. Text einer Mail mit VBA formatieren

    in Microsoft Excel Hilfe
    Text einer Mail mit VBA formatieren: Hallo Zusammen, Ich habe mir mit folgendem Mustercode eine automatische Email aus Excel in Thunderbird erstellt. Ich muss nur noch manuell auf "Senden" drücken. Meine Frage: Wie kann ich den...
  8. spalte formatieren von Text in Standard mit VBA

    in Microsoft Excel Hilfe
    spalte formatieren von Text in Standard mit VBA: Hallo, ich möchte eine Spalte in Standart Formatierung bringen, diese Spalte wurde aber vorher in Text Formatiert: Workbooks.OpenText Filename:=strDatei, Origin:= _ xlWindows,...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden