Outlook Kontakt Notizfeld Format

Home-›Foren-›Outlook-›Outlook VBA-›Outlook Kontakt Notizfeld Format

Verschlagwortet: 

8 Antworten anzeigen - 16 bis 23 (von insgesamt 23)
  • Autor
    Beitrag
  • #1029417
    Khun Bunsong
    Participant

      Alles so weit verstanden, zum Ergebnis:

      1. Code bleibt das Ergebnis:

      17.08.2017^t^t^t^t^t^tPE^t^t^t^t^t^tH.^t^t^t^t^t^tRichter^tT^t^t^t^t^t^t^tmit^t^t^t^t^tPE^t^t^t^t^t^tH.^t^t^t^t^t^tRichter,^t^t^t^t^t^t^t^tgibt^t^t^t^tInfos^t^t^tan^t^t^t^t^t^tGF^t^t^t^t^t^tH.^t^t^t^t^t^tKöhler^t^tdann^t^t^t^tweiter

      ^t^t^t^t^t^t^t^tT^t^t^t^t^t^t^t22.08.2017^t^t^t^t^t^t|^t^t^t^t^t^t^t11:00

      2. Code braucht noch in einer Zeile Korrektur,, folgende Zeile stoppt im DEBUG Modus:
      objRegEx.Replace (strText = “^t”)

      Ich bin total begeistert von Ihren VBA Kenntnissen, toll auch Ihre Hilfsbereitschaft, Danke

      #1029418
      Mailhilfe
      Keymaster

        Für den ersten Code, könnten Sie versuchen, die Schleife, die Sie verwenden, um die Zeilen zu durchlaufen, so anzupassen, dass sie nur die Leerzeichen ersetzt, die direkt aufeinanderfolgen. Sie könnten zum Beispiel eine Schleife verwenden, um jede Zeile zu durchlaufen und dann eine weitere Schleife verwenden, um jedes Zeichen in der aktuellen Zeile zu durchlaufen. Wenn ein Leerzeichen gefunden wird, können Sie überprüfen, ob das nächste Zeichen ebenfalls ein Leerzeichen ist. Wenn dies der Fall ist, ersetzen Sie das Leerzeichen durch einen Tabulator.

        Für den zweiten Code, gibt es einen kleinen Fehler in der letzten Zeile, es sollte sein:

        objRegEx.Replace(strText, "^t")

        Statt:
        objRegEx.Replace (strText = "^t")

        Bitte beachten auch die Hochkommas…

        Ich hoffe, dass diese Anpassungen Ihnen helfen, das gewünschte Ergebnis zu erzielen.

        #1029419
        Khun Bunsong
        Participant

          Hätte nicht gedacht, dass es so schwierig ist es in Outlook umzusetzen, in Word einfach mit dem Makro Recorder, aber leider nicht übertragbar auf Outlook Notizfeld in Kontakten.

          Wenn es nicht geht, mach ich das weiter manuell:
          STRG H
          Dann wie im Bild und
          Alle Ersetzen

          Würde halt Sinn machen in Outlook gleichzeitig die Schriftart und -Größe wieder zu vereinheitlichen und beides im Makro zu tun

          #1029421
          Khun Bunsong
          Participant

            Es geht nicht weiter…

            #1029423
            Mailhilfe
            Keymaster

              Es scheint, dass das Problem darin besteht, dass die Replace-Methode des RegEx-Objekts keinen Rückgabewert hat. Sie müssen den Text, der durch die Replace-Methode bearbeitet wird, in einer separaten Variablen speichern, bevor Sie ihn in das Dokument schreiben. Hier ist ein Beispiel, wie Sie dies tun können:

              Sub Schrift_Kontakte_Notizen()
              Dim Ctk As ContactItem, InSp As Inspector, Doc As Object
              Set Ctk = ActiveExplorer.Selection(1)
              Debug.Print Ctk.Body
              Set InSp = Ctk.GetInspector
              Set Doc = InSp.WordEditor
              InSp.Display
              Doc.Content.Font.Name = "Calibri"
              Doc.Content.Font.Size = 14
              Dim strText as String
              strText = Doc.Content.Text
              Dim objRegEx as Object
              Set objRegEx = CreateObject("VBScript.RegExp")
              objRegEx.Pattern = "\s{2,}"
              objRegEx.Global = True
              Dim strModifiedText as String
              strModifiedText = objRegEx.Replace(strText, "^t")
              Doc.Content.Text = strModifiedText
              End Sub

              In diesem Beispiel wird die Replace-Methode aufgerufen, um den Text zu bearbeiten und das Ergebnis wird in einer separaten Variablen namens strModifiedText gespeichert. Dann wird der Inhalt des Dokuments mit diesem bearbeiteten Text ersetzt.

              #1029424
              Khun Bunsong
              Participant

                Guten Morgen,
                wird immer besser, Makro läuft durch, leider passt das Ergebnis noch nicht.
                Statt einen Tab zu setzen, setzt das Makro an jede Stelle “^t”

                Beispiel:
                18.07.2018^t2.BIS^tH.^tMüller^tPE^tMeeting 9:00-11:00
                Die Funktion aus dem Shortcut “^t” funktioniert als Tab also nicht im VBA

                Habern Sie noch eine Idee?
                Vielen Dank

                #1029425
                Mailhilfe
                Keymaster

                  Es tut mir leid, dass ich Ihnen nicht früher sagen konnte, dass der Platzhalter “^t” in VBA nicht als Tabulator funktioniert.

                  Eine Möglichkeit, das Problem zu lösen, besteht darin, den Tabulator explizit als ASCII-Code 9 zu definieren und ihn als ReplaceWith-Wert zu verwenden. Hier ist ein Beispiel, wie Sie dies tun können:

                  Sub Schrift_Kontakte_Notizen()
                  Dim Ctk As ContactItem, InSp As Inspector, Doc As Object
                  Set Ctk = ActiveExplorer.Selection(1)
                  Debug.Print Ctk.Body
                  Set InSp = Ctk.GetInspector
                  Set Doc = InSp.WordEditor
                  InSp.Display
                  Doc.Content.Font.Name = "Calibri"
                  Doc.Content.Font.Size = 14
                  Dim strText as String
                  strText = Doc.Content.Text
                  Dim objRegEx as Object
                  Set objRegEx = CreateObject("VBScript.RegExp")
                  objRegEx.Pattern = "\s{2,}"
                  objRegEx.Global = True
                  Dim strModifiedText as String
                  strModifiedText = objRegEx.Replace(strText, Chr(9))
                  Doc.Content.Text = strModifiedText
                  End Sub

                  In diesem Beispiel wird die Replace-Methode verwendet um alle aufeinanderfolgenden Leerzeichen mit dem ASCII-Code 9 (Tabulator) zu ersetzen, der von der Funktion Chr(9) generiert wurde.

                  #1029426
                  Khun Bunsong
                  Participant

                    Besten Dank, zuerst,: ES FUNKTIONIERT

                    Hatte selbst schon mit vbTab und anderen Befehlen experimentiert, aber da weiß ich viel zu wenig von VBA. Also ich vermute mal, dass sie ein Herr und nicht blond sind, wären sie eine junge Dame und blond, würde ich sie gerne auf meine angefangene Cola im Kühlschrank einladen…

                    Aber leider sind das ja immer alles Männers, die so gut drauf sind, wusste schon der amerikanische Philosoph AL BUNDY

                    Also vielmals bedankt für die tolle Arbeit, hoffe, das hilft auch dem einen oder anderen in Outlook zur Formatierung

                    Es ist mir ein Rätsel (PCs und Notebooks genutzt mit gleichen Office Account) warum das Notizfeld die Formatierungen oft, nicht immer, jedenfalls nicht nachvollziehbar verliert.
                    Habe eine voreingestellte Schriftart und Größe definiert, nutze da auch kleinere Tabellen im Notiz Body der Kontakte, nur ist das dann irgendwann alles wieder weg, Tabs durch viele Leerzeichen ersetzt, Schriftgrößen und Schriftart TEILWEISE anders
                    Nicht nachvollziehbar in Outlook 2021

                    Vielen Dank und beste Grüße

                  8 Antworten anzeigen - 16 bis 23 (von insgesamt 23)

                  Das Thema ‘Outlook Kontakt Notizfeld Format’ ist für neue Antworten geschlossen.

                  Hat Ihnen der Beitrag gefallen?

                  1 Stern2 Sterne3 Sterne4 Sterne5 Sterne (Keine Bewertung vorhanden)
                  Loading...