דילוג לתוכן
  • חוקי הפורום
  • פופולרי
  • לא נפתר
  • משתמשים
  • חיפוש גוגל בפורום
  • צור קשר
עיצובים
  • בהיר
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • כהה
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • ברירת מחדל (ללא עיצוב (ברירת מחדל))
  • ללא עיצוב (ברירת מחדל)
כיווץ
מתמחים טופ
  1. דף הבית
  2. תוכנות
  3. יישומי אופיס
  4. וורד
  5. עזרה הדדית - וורד
  6. שיתוף | המשך - "מתעדכן" אוסף מאקרו לוורד - אינדקס מאקרו שימושי + הוראות חשובות.

שיתוף | המשך - "מתעדכן" אוסף מאקרו לוורד - אינדקס מאקרו שימושי + הוראות חשובות.

מתוזמן נעוץ נעול הועבר עזרה הדדית - וורד
15 פוסטים 5 כותבים 553 צפיות 9 עוקבים
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • אביעדא מנותק
    אביעדא מנותק
    אביעד
    מדריכים
    כתב נערך לאחרונה על ידי
    #4

    יישר כח
    אממ. לגבי מה שאמרת שם שלא הייתי צריך לפרט -זה לא אישי.. בד''כ יש עוד כאלה שמסתכלים ולא כולם יודעים.. אז אם לא יועיל לא יזיק 😊

    לכל המדריכים שלי
    מסקרן אותך להבין יותר לעומק מה זה מחשב?
    תראה את זה!

    תגובה 1 תגובה אחרונה
    1
    • יאיר דניאלי מנותק
      יאיר דניאלי מנותק
      יאיר דניאל
      כתב נערך לאחרונה על ידי יאיר דניאל
      #5

      מאקרו קטן שכתבתי (בעזרת הAI - כי פשוט קצת הסתבכתי לבד...)
      לגיבוי של כל ההגדרות האישיות באופיס, כמו תיקוני שגיאות, תבנית נורמל, מילון, פקודות המאקרו ועיצוב הכרטיסיות שלכם.
      זהו מאקרו כפול - גיבוי, ושחזור למיקום המקורי.
      זה חשוב לגבות מידי פעם, מנסיון...

      • התיקייה שתיווצר לאחר הרצת המאקרו - לא שוקלת כמעט כלום, אבל היא תחסוך לכם הרבה עבודה - כשיימחק לכם ההגדרות איכשהו/ תאפסו את המחשב/ תעשו התקנה נקייה/ תקנו מחשב חדש!

      מאקרו גיבוי תבנית נורמל:

      [זה מאקרו שכתב אי מי מחברי הפורום, אינני זוכר מי כך שאני לא יכול לתת לו את הקרדיט המגיע לו - לגיבוי של תבנית הנורמל

      Sub גיבוי_תבנית_נורמל()
          Dim fso As Object
          Dim sourcePath As String
          Dim destPath As String
          Dim fileName As String
          Dim dateTimeStamp As String
       
          Set fso = CreateObject("Scripting.FileSystemObject")
          
          sourcePath = "C:\Users\ZMB\AppData\Roaming\Microsoft\Templates\"
          destPath =  **הזינו כאן את הנתיב בו תרצו לשמור את התבנית**
          dateTimeStamp = Format(Now, "dd_mm_yy_hh_mm_ss")
          
          fileName = "Normal.dotm"
          
          If Not fso.FolderExists(destPath) Then
              fso.CreateFolder destPath
          End If
          
          If fso.FileExists(sourcePath & fileName) Then
              fso.CopyFile sourcePath & fileName, destPath & Left(fileName, Len(fileName) - 5) & "_" & dateTimeStamp & ".dotm"
              
              MsgBox "הקובץ הועתק בהצלחה ונוסף לתיקיית הגיבוי."
          Else
              MsgBox "הקובץ המקורי אינו קיים."
          End If
          
          Set fso = Nothing
      End Sub
      

      מאקרו גיבוי התאמות אישיות:

      • מאקרו זה מגבה את הקבצים הבאים:
        מילון אישי
        תיקון שגיאות אוטומטי
        התאמות אישיות בוורד, אקסל, אקסס
        תבנית נורמל
      Option Explicit
      
      Sub גיבוי_ושחזור_התאמות_משתמש()
      
          Dim fso As Object
          Dim user As String
          Dim basePath As String
          Dim פעולה As VbMsgBoxResult
          Dim src As String, dst As String
      
          Set fso = CreateObject("Scripting.FileSystemObject")
          user = CreateObject("WScript.Network").UserName
      
          פעולה = MsgBox( _
              "בחר פעולה:" & vbCrLf & _
              "כן = גיבוי" & vbCrLf & _
              "לא = שחזור", _
              vbYesNoCancel + vbQuestion, _
              "Office PRO")
      
          If פעולה = vbCancel Then Exit Sub
      
          With Application.FileDialog(4)
              .Title = IIf(פעולה = vbYes, "בחר תיקייה לגיבוי", "בחר תיקיית גיבוי")
              If .Show <> -1 Then Exit Sub
              basePath = .SelectedItems(1)
          End With
      
          ' ================= UI – Excel =================
          CreateFolderIfMissing fso, basePath & "\UI"
          If פעולה = vbYes Then
              src = "C:\Users\" & user & "\AppData\Local\Microsoft\Office\Excel.officeUI"
              dst = basePath & "\UI\Excel.officeUI"
          Else
              src = basePath & "\UI\Excel.officeUI"
              dst = "C:\Users\" & user & "\AppData\Local\Microsoft\Office\Excel.officeUI"
          End If
          CopyFileSafe fso, src, dst
      
          ' ================= UI – Word =================
          If פעולה = vbYes Then
              src = "C:\Users\" & user & "\AppData\Local\Microsoft\Office\Word.officeUI"
              dst = basePath & "\UI\Word.officeUI"
          Else
              src = basePath & "\UI\Word.officeUI"
              dst = "C:\Users\" & user & "\AppData\Local\Microsoft\Office\Word.officeUI"
          End If
          CopyFileSafe fso, src, dst
      
          ' ================= Normal.dotm =================
          CreateFolderIfMissing fso, basePath & "\Word"
          If פעולה = vbYes Then
              src = "C:\Users\" & user & "\AppData\Roaming\Microsoft\Templates\Normal.dotm"
              dst = basePath & "\Word\Normal.dotm"
          Else
              src = basePath & "\Word\Normal.dotm"
              dst = "C:\Users\" & user & "\AppData\Roaming\Microsoft\Templates\Normal.dotm"
          End If
          CopyFileSafe fso, src, dst
      
          ' ================= Office (Roaming) =================
          CreateFolderIfMissing fso, basePath & "\Office"
          If פעולה = vbYes Then
              src = "C:\Users\" & user & "\AppData\Roaming\Microsoft\Office"
              dst = basePath & "\Office"
          Else
              src = basePath & "\Office"
              dst = "C:\Users\" & user & "\AppData\Roaming\Microsoft\Office"
          End If
          CopyFolderSafe fso, src, dst
      
          ' ================= UProof =================
          CreateFolderIfMissing fso, basePath & "\UProof"
          If פעולה = vbYes Then
              src = "C:\Users\" & user & "\AppData\Roaming\Microsoft\UProof"
              dst = basePath & "\UProof"
          Else
              src = basePath & "\UProof"
              dst = "C:\Users\" & user & "\AppData\Roaming\Microsoft\UProof"
          End If
          CopyFolderSafe fso, src, dst
      
          ' ================= Spelling =================
          CreateFolderIfMissing fso, basePath & "\Spelling"
          If פעולה = vbYes Then
              src = "C:\Users\" & user & "\AppData\Roaming\Microsoft\Spelling"
              dst = basePath & "\Spelling"
          Else
              src = basePath & "\Spelling"
              dst = "C:\Users\" & user & "\AppData\Roaming\Microsoft\Spelling"
          End If
          CopyFolderSafe fso, src, dst
      
          ' ================= Excel (Roaming) =================
          CreateFolderIfMissing fso, basePath & "\Excel"
          If פעולה = vbYes Then
              src = "C:\Users\" & user & "\AppData\Roaming\Microsoft\Excel"
              dst = basePath & "\Excel"
          Else
              src = basePath & "\Excel"
              dst = "C:\Users\" & user & "\AppData\Roaming\Microsoft\Excel"
          End If
          CopyFolderSafe fso, src, dst
      
          ' ================= Access =================
          CreateFolderIfMissing fso, basePath & "\Access"
          If פעולה = vbYes Then
              src = "C:\Users\" & user & "\AppData\Roaming\Microsoft\Access"
              dst = basePath & "\Access"
          Else
              src = basePath & "\Access"
              dst = "C:\Users\" & user & "\AppData\Roaming\Microsoft\Access"
          End If
          CopyFolderSafe fso, src, dst
      
          MsgBox IIf(פעולה = vbYes, _
              "הגיבוי הושלם בהצלחה", _
              "השחזור הושלם בהצלחה"), _
              vbInformation, "Office PRO"
      
      End Sub
      
      ' ================= עזר =================
      Sub CreateFolderIfMissing(fso As Object, path As String)
          If Not fso.FolderExists(path) Then fso.CreateFolder path
      End Sub
      
      Sub CopyFileSafe(fso As Object, src As String, dst As String)
          If fso.FileExists(src) Then
              CreateFolderIfMissing fso, fso.GetParentFolderName(dst)
              On Error Resume Next
              If fso.FileExists(dst) Then fso.DeleteFile dst, True
              fso.CopyFile src, dst, True
              Err.Clear
              On Error GoTo 0
          End If
      End Sub
      
      Sub CopyFolderSafe(fso As Object, src As String, dst As String)
          If fso.FolderExists(src) Then
              CreateFolderIfMissing fso, fso.GetParentFolderName(dst)
              fso.CopyFolder src, dst, True
          End If
      End Sub
      
      
      מ תגובה 1 תגובה אחרונה
      2
      • יאיר דניאלי יאיר דניאל

        מאקרו קטן שכתבתי (בעזרת הAI - כי פשוט קצת הסתבכתי לבד...)
        לגיבוי של כל ההגדרות האישיות באופיס, כמו תיקוני שגיאות, תבנית נורמל, מילון, פקודות המאקרו ועיצוב הכרטיסיות שלכם.
        זהו מאקרו כפול - גיבוי, ושחזור למיקום המקורי.
        זה חשוב לגבות מידי פעם, מנסיון...

        • התיקייה שתיווצר לאחר הרצת המאקרו - לא שוקלת כמעט כלום, אבל היא תחסוך לכם הרבה עבודה - כשיימחק לכם ההגדרות איכשהו/ תאפסו את המחשב/ תעשו התקנה נקייה/ תקנו מחשב חדש!

        מאקרו גיבוי תבנית נורמל:

        [זה מאקרו שכתב אי מי מחברי הפורום, אינני זוכר מי כך שאני לא יכול לתת לו את הקרדיט המגיע לו - לגיבוי של תבנית הנורמל

        Sub גיבוי_תבנית_נורמל()
            Dim fso As Object
            Dim sourcePath As String
            Dim destPath As String
            Dim fileName As String
            Dim dateTimeStamp As String
         
            Set fso = CreateObject("Scripting.FileSystemObject")
            
            sourcePath = "C:\Users\ZMB\AppData\Roaming\Microsoft\Templates\"
            destPath =  **הזינו כאן את הנתיב בו תרצו לשמור את התבנית**
            dateTimeStamp = Format(Now, "dd_mm_yy_hh_mm_ss")
            
            fileName = "Normal.dotm"
            
            If Not fso.FolderExists(destPath) Then
                fso.CreateFolder destPath
            End If
            
            If fso.FileExists(sourcePath & fileName) Then
                fso.CopyFile sourcePath & fileName, destPath & Left(fileName, Len(fileName) - 5) & "_" & dateTimeStamp & ".dotm"
                
                MsgBox "הקובץ הועתק בהצלחה ונוסף לתיקיית הגיבוי."
            Else
                MsgBox "הקובץ המקורי אינו קיים."
            End If
            
            Set fso = Nothing
        End Sub
        

        מאקרו גיבוי התאמות אישיות:

        • מאקרו זה מגבה את הקבצים הבאים:
          מילון אישי
          תיקון שגיאות אוטומטי
          התאמות אישיות בוורד, אקסל, אקסס
          תבנית נורמל
        Option Explicit
        
        Sub גיבוי_ושחזור_התאמות_משתמש()
        
            Dim fso As Object
            Dim user As String
            Dim basePath As String
            Dim פעולה As VbMsgBoxResult
            Dim src As String, dst As String
        
            Set fso = CreateObject("Scripting.FileSystemObject")
            user = CreateObject("WScript.Network").UserName
        
            פעולה = MsgBox( _
                "בחר פעולה:" & vbCrLf & _
                "כן = גיבוי" & vbCrLf & _
                "לא = שחזור", _
                vbYesNoCancel + vbQuestion, _
                "Office PRO")
        
            If פעולה = vbCancel Then Exit Sub
        
            With Application.FileDialog(4)
                .Title = IIf(פעולה = vbYes, "בחר תיקייה לגיבוי", "בחר תיקיית גיבוי")
                If .Show <> -1 Then Exit Sub
                basePath = .SelectedItems(1)
            End With
        
            ' ================= UI – Excel =================
            CreateFolderIfMissing fso, basePath & "\UI"
            If פעולה = vbYes Then
                src = "C:\Users\" & user & "\AppData\Local\Microsoft\Office\Excel.officeUI"
                dst = basePath & "\UI\Excel.officeUI"
            Else
                src = basePath & "\UI\Excel.officeUI"
                dst = "C:\Users\" & user & "\AppData\Local\Microsoft\Office\Excel.officeUI"
            End If
            CopyFileSafe fso, src, dst
        
            ' ================= UI – Word =================
            If פעולה = vbYes Then
                src = "C:\Users\" & user & "\AppData\Local\Microsoft\Office\Word.officeUI"
                dst = basePath & "\UI\Word.officeUI"
            Else
                src = basePath & "\UI\Word.officeUI"
                dst = "C:\Users\" & user & "\AppData\Local\Microsoft\Office\Word.officeUI"
            End If
            CopyFileSafe fso, src, dst
        
            ' ================= Normal.dotm =================
            CreateFolderIfMissing fso, basePath & "\Word"
            If פעולה = vbYes Then
                src = "C:\Users\" & user & "\AppData\Roaming\Microsoft\Templates\Normal.dotm"
                dst = basePath & "\Word\Normal.dotm"
            Else
                src = basePath & "\Word\Normal.dotm"
                dst = "C:\Users\" & user & "\AppData\Roaming\Microsoft\Templates\Normal.dotm"
            End If
            CopyFileSafe fso, src, dst
        
            ' ================= Office (Roaming) =================
            CreateFolderIfMissing fso, basePath & "\Office"
            If פעולה = vbYes Then
                src = "C:\Users\" & user & "\AppData\Roaming\Microsoft\Office"
                dst = basePath & "\Office"
            Else
                src = basePath & "\Office"
                dst = "C:\Users\" & user & "\AppData\Roaming\Microsoft\Office"
            End If
            CopyFolderSafe fso, src, dst
        
            ' ================= UProof =================
            CreateFolderIfMissing fso, basePath & "\UProof"
            If פעולה = vbYes Then
                src = "C:\Users\" & user & "\AppData\Roaming\Microsoft\UProof"
                dst = basePath & "\UProof"
            Else
                src = basePath & "\UProof"
                dst = "C:\Users\" & user & "\AppData\Roaming\Microsoft\UProof"
            End If
            CopyFolderSafe fso, src, dst
        
            ' ================= Spelling =================
            CreateFolderIfMissing fso, basePath & "\Spelling"
            If פעולה = vbYes Then
                src = "C:\Users\" & user & "\AppData\Roaming\Microsoft\Spelling"
                dst = basePath & "\Spelling"
            Else
                src = basePath & "\Spelling"
                dst = "C:\Users\" & user & "\AppData\Roaming\Microsoft\Spelling"
            End If
            CopyFolderSafe fso, src, dst
        
            ' ================= Excel (Roaming) =================
            CreateFolderIfMissing fso, basePath & "\Excel"
            If פעולה = vbYes Then
                src = "C:\Users\" & user & "\AppData\Roaming\Microsoft\Excel"
                dst = basePath & "\Excel"
            Else
                src = basePath & "\Excel"
                dst = "C:\Users\" & user & "\AppData\Roaming\Microsoft\Excel"
            End If
            CopyFolderSafe fso, src, dst
        
            ' ================= Access =================
            CreateFolderIfMissing fso, basePath & "\Access"
            If פעולה = vbYes Then
                src = "C:\Users\" & user & "\AppData\Roaming\Microsoft\Access"
                dst = basePath & "\Access"
            Else
                src = basePath & "\Access"
                dst = "C:\Users\" & user & "\AppData\Roaming\Microsoft\Access"
            End If
            CopyFolderSafe fso, src, dst
        
            MsgBox IIf(פעולה = vbYes, _
                "הגיבוי הושלם בהצלחה", _
                "השחזור הושלם בהצלחה"), _
                vbInformation, "Office PRO"
        
        End Sub
        
        ' ================= עזר =================
        Sub CreateFolderIfMissing(fso As Object, path As String)
            If Not fso.FolderExists(path) Then fso.CreateFolder path
        End Sub
        
        Sub CopyFileSafe(fso As Object, src As String, dst As String)
            If fso.FileExists(src) Then
                CreateFolderIfMissing fso, fso.GetParentFolderName(dst)
                On Error Resume Next
                If fso.FileExists(dst) Then fso.DeleteFile dst, True
                fso.CopyFile src, dst, True
                Err.Clear
                On Error GoTo 0
            End If
        End Sub
        
        Sub CopyFolderSafe(fso As Object, src As String, dst As String)
            If fso.FolderExists(src) Then
                CreateFolderIfMissing fso, fso.GetParentFolderName(dst)
                fso.CopyFolder src, dst, True
            End If
        End Sub
        
        
        מ מנותק
        מ מנותק
        מניין
        כתב נערך לאחרונה על ידי מניין
        #6

        @יאיר-דניאל כתב בשיתוף | המשך - "מתעדכן" אוסף מאקרו לוורד - אינדקס מאקרו שימושי + הוראות חשובות.:

        הנה מאקרו קטן שכתבתי (בעזרת הAI - כי פשוט קצת הסתבכתי לבד...)
        לגיבוי של כל ההגדרות האישיות באופיס, כמו תיקוני שגיאות, תבנית נורמל, מילון, פקודות המאקרו ועיצוב הכרטיסיות שלכם.

        האם זה שומר גם על כל הכרטיסיות, הקיצורי דרך, והמאקרואים.

        יאיר דניאלי תגובה 1 תגובה אחרונה
        0
        • מ מניין

          @יאיר-דניאל כתב בשיתוף | המשך - "מתעדכן" אוסף מאקרו לוורד - אינדקס מאקרו שימושי + הוראות חשובות.:

          הנה מאקרו קטן שכתבתי (בעזרת הAI - כי פשוט קצת הסתבכתי לבד...)
          לגיבוי של כל ההגדרות האישיות באופיס, כמו תיקוני שגיאות, תבנית נורמל, מילון, פקודות המאקרו ועיצוב הכרטיסיות שלכם.

          האם זה שומר גם על כל הכרטיסיות, הקיצורי דרך, והמאקרואים.

          יאיר דניאלי מנותק
          יאיר דניאלי מנותק
          יאיר דניאל
          כתב נערך לאחרונה על ידי יאיר דניאל
          #7

          @מניין כתב בשיתוף | המשך - "מתעדכן" אוסף מאקרו לוורד - אינדקס מאקרו שימושי + הוראות חשובות.:

          האם זה שומר גם על כל הכרטיסיות, הקיצורי דרך, והמאקרואים.

          כן, על המאקרואים ודאי - זה נמצא בתוך התבנית נורמל שנשמרת, ושאר הדברים גם אמור להיות לפי הנתיבים שבהם הם נמצאים, מה שכן, כיון שלא ניסתי בפועל, הייתי ממליץ לך לנסות ולראות.
          אני אנסה עוד כמה דקות ואעדכן אותך פה

          תגובה 1 תגובה אחרונה
          0
          • יאיר דניאלי מנותק
            יאיר דניאלי מנותק
            יאיר דניאל
            כתב נערך לאחרונה על ידי יאיר דניאל
            #8

            מאקרו להקטנת סוגריים עגולות ומרובעות בתוך הטקסט:

            (כרגע הוא מוגדר על הקטנת סוגריים מרובעות לגודל 11 ועגולות לגודל 9 - כמובן שתוכלו לשנות את זה כטוב בעינכם).

            Sub הקטנת_סוגריים()
            '
            ' הקטנת_סוגריים Macro
            '
            '
                Selection.Find.ClearFormatting
                Selection.Find.Replacement.ClearFormatting
                With Selection.Find
                    .Text = "\[*\]"
                    .Replacement.Text = "^&"
                    .Forward = True
                    .Wrap = wdFindContinue
                    .Format = True
                    .MatchCase = False
                    .MatchWholeWord = False
                    .MatchKashida = False
                    .MatchDiacritics = False
                    .MatchAlefHamza = False
                    .MatchControl = False
                    .MatchAllWordForms = False
                    .MatchSoundsLike = False
                    .MatchWildcards = True
                    .Replacement.Font.SizeBi = 11
                End With
                Selection.Find.Execute Replace:=wdReplaceAll
                Selection.Find.Execute Replace:=wdReplaceAll
                Selection.Find.ClearFormatting
                Selection.Find.Replacement.ClearFormatting
                With Selection.Find
                    .Text = "\(*\)"
                    .Replacement.Text = ""
                    .Forward = True
                    .Wrap = wdFindContinue
                    .Format = True
                    .MatchCase = False
                    .MatchWholeWord = False
                    .MatchKashida = False
                    .MatchDiacritics = False
                    .MatchAlefHamza = False
                    .MatchControl = False
                    .MatchAllWordForms = False
                    .MatchSoundsLike = False
                    .MatchWildcards = True
                    .Replacement.Font.SizeBi = 9
                    .Replacement.Font.Size = 9
                End With
                Selection.Find.Execute Replace:=wdReplaceAll
            End Sub
            

            לעצלנים שבינינו - מצורף גם אותו המאקרו - להערות שוליים, עם הגדרות גודל יותר קטנות = 7 למרובע, 6 לעגול.
            שימו לב! את המאקרו העליון - הפעילו בעוד הסמן עומד בטקסט עצמו, ואת המאקרו התחתון - בעוד הסמן עומד בהערות השוליים.

            Sub הקטנת_סוגריים_הערת_שוליים()
            '
            ' הקטנת_סוגריים_הערת_שוליים Macro
            '
            '
                Selection.Find.ClearFormatting
                Selection.Find.Replacement.ClearFormatting
                With Selection.Find
                    .Text = "\[*\]"
                    .Replacement.Text = "^&"
                    .Forward = True
                    .Wrap = wdFindContinue
                    .Format = True
                    .MatchCase = False
                    .MatchWholeWord = False
                    .MatchKashida = False
                    .MatchDiacritics = False
                    .MatchAlefHamza = False
                    .MatchControl = False
                    .MatchAllWordForms = False
                    .MatchSoundsLike = False
                    .MatchWildcards = True
                    .Replacement.Font.SizeBi = 7
                 End With
                Selection.Find.Execute Replace:=wdReplaceAll
                Selection.Find.ClearFormatting
                Selection.Find.Replacement.ClearFormatting
                With Selection.Find
                    .Text = "\(*\)"
                    .Replacement.Text = "^&"
                    .Forward = True
                    .Wrap = wdFindContinue
                    .Format = True
                    .MatchCase = False
                    .MatchWholeWord = False
                    .MatchKashida = False
                    .MatchDiacritics = False
                    .MatchAlefHamza = False
                    .MatchControl = False
                    .MatchAllWordForms = False
                    .MatchSoundsLike = False
                    .MatchWildcards = True
                    .Replacement.Font.SizeBi = 6
                End With
                Selection.Find.Execute Replace:=wdReplaceAll
            End Sub
            
            תגובה 1 תגובה אחרונה
            1
            • יאיר דניאלי מנותק
              יאיר דניאלי מנותק
              יאיר דניאל
              כתב נערך לאחרונה על ידי יאיר דניאל
              #9

              מאקרו לסימון אותיות בתשובות לעיון ההלכה

              • למי שנוהג לכתוב בצורת התבנית הבאה:
                עיון ההלכה.png
              • מה שהמאקרו הזה עושה הוא כך:
                א. מדגיש ומוסיף פס תחתון למספר התשובה.
                ב. מדגיש את מספר האות - בתוך כל תשובה.
              Sub סימון_אותיות_עיון_ההלכה()
              '
              ' סימון_אותיות_עיון_ההלכה Macro
              '
              '
                  Selection.Find.ClearFormatting
                  Selection.Find.Replacement.ClearFormatting
                  With Selection.Find.Replacement.Font
                      .BoldBi = True
                      .Underline = wdUnderlineSingle
                  End With
                  With Selection.Find
                      .Text = "^p^$:"
                      .Replacement.Text = "^&"
                      .Forward = True
                      .Wrap = wdFindContinue
                      .Format = True
                      .MatchCase = False
                      .MatchWholeWord = False
                      .MatchKashida = False
                      .MatchDiacritics = False
                      .MatchAlefHamza = False
                      .MatchControl = False
                      .MatchWildcards = False
                      .MatchSoundsLike = False
                      .MatchAllWordForms = False
                      .Replacement.Font.NameBi = "ShefaClassic"
                  End With
                     Selection.Find.Execute Replace:=wdReplaceAll
                  Selection.Find.ClearFormatting
                  Selection.Find.Replacement.ClearFormatting
                  With Selection.Find.Replacement.Font
                      .BoldBi = True
                      .Underline = 0
                  End With
                  With Selection.Find
                      .Text = "(^$) "
                      .Replacement.Text = "^&"
                      .Forward = True
                      .Wrap = wdFindContinue
                      .Format = True
                      .MatchCase = False
                      .MatchWholeWord = False
                      .MatchKashida = False
                      .MatchDiacritics = False
                      .MatchAlefHamza = False
                      .MatchControl = False
                      .MatchWildcards = False
                      .MatchSoundsLike = False
                      .MatchAllWordForms = False
                      .Replacement.Font.NameBi = "ShefaClassic"
                  End With
                  Selection.Find.Execute Replace:=wdReplaceAll
              End Sub
              

              הערה קטנה וחשובה:
              כעת המאקרו מוגדר להחליף לפונט: ShefaClassic, תוכלו כמובן לשנות זאת לכל פונט העולה על רוחכם - פשוט החליפו את שם הפונט בשורה הזו:

                .Replacement.Font.NameBi = "ShefaClassic"
              
              תגובה 1 תגובה אחרונה
              1
              • יאיר דניאלי מנותק
                יאיר דניאלי מנותק
                יאיר דניאל
                כתב נערך לאחרונה על ידי
                #10

                מאקרו שיצרתי לבקשתו של אחד מחברי הפורום - להחלפת גופנים ע"י מאקרו.

                גירסה א:

                Sub FinalFont_InstantUpdate()
                    Dim selectedFont As String
                    Dim lastUsedFont As String
                    Dim answer As VbMsgBoxResult
                    
                    ' 1. בחירה מפורשת של הכל אם לא סומן כלום
                    If Selection.Start = Selection.End Then
                        ActiveDocument.Range.Select
                    End If
                    
                    ' 2. שליפת הגופן האחרון
                    lastUsedFont = GetSetting("MyWordMacros", "Settings", "LastFont", "David")
                    
                    ' 3. שאלה למשתמש
                    answer = MsgBox("האם להשתמש בגופן האחרון: " & lastUsedFont & "?" & vbCrLf & _
                                    "לחץ 'כן' לביצוע, או 'לא' לבחירה מרשימה.", _
                                    vbYesNoCancel + vbQuestion + vbMsgBoxRight + vbMsgBoxRtlReading, "החלפת גופן")
                    
                    If answer = vbYes Then
                        selectedFont = lastUsedFont
                    ElseIf answer = vbNo Then
                        With Application.Dialogs(wdDialogFormatFont)
                            If .Show = -1 Then
                                selectedFont = Selection.Font.NameBi
                                If selectedFont = "" Or selectedFont = "0" Then selectedFont = Selection.Font.Name
                            End If
                        End With
                        
                        If selectedFont <> "" And selectedFont <> "0" Then
                            SaveSetting "MyWordMacros", "Settings", "LastFont", selectedFont
                        Else
                            Selection.Collapse Direction:=wdCollapseStart
                            Exit Sub
                        End If
                    Else
                        Selection.Collapse Direction:=wdCollapseStart
                        Exit Sub
                    End If
                    
                    ' 4. ביצוע השינוי עם עדכון מסך כפוי
                    If selectedFont <> "" Then
                        Application.ScreenUpdating = False ' מכבה עדכון כדי להאיץ
                        
                        On Error Resume Next
                        With Selection.Font
                            .NameBi = selectedFont 
                            .Name = selectedFont   
                        End With
                        On Error GoTo 0
                        
                        ' פקודות לרענון מיידי של המסך
                        Application.ScreenUpdating = True ' מדליק חזרה ומאלץ רענון
                        DoEvents ' משחרר את המערכת לעדכון גרפי
                        Application.ScreenRefresh ' רענון סופי של Word
                        
                        Selection.Collapse Direction:=wdCollapseStart
                        Application.StatusBar = "הגופן עודכן ל-" & selectedFont
                    End If
                End Sub
                

                e0ac8a21-6100-4afe-83f5-dcf99c283027-image.png 0eda229e-2e5c-444c-af5e-5a499d7e7876-image.png

                גירסה ב:

                בחירת גופן להחלפה - מתוך רשימה

                Sub ReplaceSpecificFont()
                    Dim docFonts As New Collection
                    Dim targetFont As String
                    Dim replacementFont As String
                    Dim lastUsedFont As String
                    Dim i As Long
                    Dim fontChoice As String
                    Dim answer As VbMsgBoxResult
                
                    ' 1. סריקת המסמך לזיהוי פונטים קיימים
                    On Error Resume Next
                    Dim para As Paragraph
                    For Each para In ActiveDocument.Paragraphs
                        ' הוספת הגופן הרגיל והגופן העברי לאוסף
                        If para.Range.Font.Name <> "" Then docFonts.Add para.Range.Font.Name, para.Range.Font.Name
                        If para.Range.Font.NameBi <> "" Then docFonts.Add para.Range.Font.NameBi, para.Range.Font.NameBi
                    Next para
                    On Error GoTo 0
                
                    If docFonts.Count = 0 Then
                        MsgBox "לא נמצאו גופנים מזוהים.", vbExclamation
                        Exit Sub
                    End If
                
                    ' 2. בחירת הגופן להחלפה
                    Dim fontList As String
                    fontList = "בחר מספר גופן להחלפה:" & vbCrLf
                    For i = 1 To docFonts.Count
                        fontList = fontList & i & ". " & docFonts(i) & vbCrLf
                    Next i
                
                    fontChoice = InputBox(fontList, "חפש והחלף גופן")
                    If Not IsNumeric(fontChoice) Then Exit Sub
                    i = CInt(fontChoice)
                    If i < 1 Or i > docFonts.Count Then Exit Sub
                    targetFont = docFonts(i)
                
                    ' 3. בחירת גופן היעד
                    lastUsedFont = GetSetting("MyWordMacros", "Settings", "LastFont", "David")
                    answer = MsgBox("להחליף את " & targetFont & " ב-" & lastUsedFont & "?" & vbCrLf & _
                                    "לחץ 'כן' לאישור, או 'לא' לבחירה מרשימה.", _
                                    vbYesNoCancel + vbQuestion + vbMsgBoxRight + vbMsgBoxRtlReading)
                
                    If answer = vbYes Then
                        replacementFont = lastUsedFont
                    ElseIf answer = vbNo Then
                        With Application.Dialogs(wdDialogFormatFont)
                            If .Show = -1 Then
                                replacementFont = Selection.Font.NameBi
                                If replacementFont = "" Or replacementFont = "0" Then replacementFont = Selection.Font.Name
                            End If
                        End With
                    Else
                        Exit Sub
                    End If
                
                    If replacementFont = "" Or replacementFont = "0" Then Exit Sub
                    SaveSetting "MyWordMacros", "Settings", "LastFont", replacementFont
                
                    ' 4. ביצוע ההחלפה (שיטה משופרת)
                    Application.ScreenUpdating = False
                    
                    ' פקודת ההחלפה צריכה לרוץ פעמיים כדי לכסות גם עברית וגם אנגלית בוודאות
                    Call ExecuteFontReplace(targetFont, replacementFont, True)  ' עבור עברית
                    Call ExecuteFontReplace(targetFont, replacementFont, False) ' עבור אנגלית
                
                    Application.ScreenUpdating = True
                    Application.ScreenRefresh
                    
                    MsgBox "הפעולה הושלמה עבור הגופן: " & targetFont, vbInformation
                End Sub
                
                ' פונקציית עזר לביצוע ההחלפה בפועל' פונקציית עזר לביצוע ההחלפה בפועל - עם שמות פרמטרים תקינים
                Sub ExecuteFontReplace(fTarget As String, fReplace As String, isBi As Boolean)
                    Dim r As Range
                    Set r = ActiveDocument.Content
                    
                    r.Find.ClearFormatting
                    r.Find.Replacement.ClearFormatting
                    
                    If isBi Then
                        r.Find.Font.NameBi = fTarget
                        r.Find.Replacement.Font.NameBi = fReplace
                    Else
                        r.Find.Font.Name = fTarget
                        r.Find.Replacement.Font.Name = fReplace
                    End If
                    
                    ' התיקון הקריטי: FindText במקום Text, ו-ReplaceWith במקום ReplacementText
                    r.Find.Execute FindText:="", ReplaceWith:="", _
                        Forward:=True, Wrap:=wdFindContinue, Format:=True, Replace:=wdReplaceAll
                End Sub
                

                זה עובד כך - תמונות בספויילר

                4cdb8855-0815-4bbc-8af7-a663a92f2931-image.png
                3c7116dc-e525-4c44-bd9b-ba7833317db2-image.png
                53a647f1-eccc-4800-8591-c95458306e00-image.png

                גירסה ג:

                (כמו גירסה ב' אבל לא צריך להקליד מספר גופן - אלא בוחרים בגופן עצמו - ההמשך אותו דבר).

                פשוט להפעיל את הקובץ המצורף
                החלפת גופנים.exe

                או להכניס את הקובץ המצורף- לתיקיית הטמפלס של אופיס
                (הקובץ למעלה ⏫ - עושה את זה אוטומטית)

                החלפת גופנים.dotm

                c8abf13f-ba1c-4a68-8d02-38c8044bae4b-image.png

                תגובה 1 תגובה אחרונה
                3
                • יאיר דניאלי מנותק
                  יאיר דניאלי מנותק
                  יאיר דניאל
                  כתב נערך לאחרונה על ידי יאיר דניאל
                  #11

                  מאקרו תיקון סמינים כפולים ושגיאות הקלדה

                  (פירוט הפעולות שנעשות ע"י המאקרו - בספויילר בסוף ההודעה)

                  העליתי בעבר מאקרו לתיקון סימנים כפולים ושגיאות הקלדה - משהו שיצרתי לאט לאט - תוכ"ד כתיבה ושימת לב לשגיאות נפוצות, הבעיה היא שהוא לא היה כתוב נכון, מכיון שהוא גרם לוורד לעשות כל פעולת החלפה - על כל המסמך ואז שוב - ההחלפה הבאה, מהתחלה ועד הסוף, מה שיצר גם קוד ארוך במיוחד.

                  הנה הוא, סתם לשם התרשמות:

                  Sub תיקון_סימנים_כפולים_ועוד()
                  '
                  ' תיקון_סימנים_כפולים_ועוד Macro
                  '
                  '
                  '
                      Selection.Find.ClearFormatting
                      Selection.Find.Replacement.ClearFormatting
                      With Selection.Find
                          .Text = ".."
                          .Replacement.Text = "."
                          .Forward = True
                          .Wrap = wdFindContinue
                          .Format = False
                          .MatchCase = False
                          .MatchWholeWord = False
                          .MatchKashida = False
                          .MatchDiacritics = False
                          .MatchAlefHamza = False
                          .MatchControl = False
                          .MatchWildcards = False
                          .MatchSoundsLike = False
                          .MatchAllWordForms = False
                      End With
                      Selection.Find.ClearFormatting
                      Selection.Find.Replacement.ClearFormatting
                      With Selection.Find
                          .Text = ".{4,}"
                          .Replacement.Text = "."
                          .Forward = True
                          .Wrap = wdFindContinue
                          .Format = False
                          .MatchCase = False
                          .MatchWholeWord = False
                          .MatchKashida = False
                          .MatchDiacritics = False
                          .MatchAlefHamza = False
                          .MatchControl = False
                          .MatchAllWordForms = False
                          .MatchSoundsLike = False
                          .MatchWildcards = True
                      End With
                      Selection.Find.Execute Replace:=wdReplaceAll
                      With Selection.Find
                          .Text = ",,"
                          .Replacement.Text = ","
                          .Forward = True
                          .Wrap = wdFindContinue
                          .Format = False
                          .MatchCase = False
                          .MatchWholeWord = False
                          .MatchKashida = False
                          .MatchDiacritics = False
                          .MatchAlefHamza = False
                          .MatchControl = False
                          .MatchWildcards = False
                          .MatchSoundsLike = False
                          .MatchAllWordForms = False
                      End With
                      Selection.Find.Execute Replace:=wdReplaceAll
                      With Selection.Find
                          .Text = "''"
                          .Replacement.Text = "'"
                          .Forward = True
                          .Wrap = wdFindContinue
                          .Format = False
                          .MatchCase = False
                          .MatchWholeWord = False
                          .MatchKashida = False
                          .MatchDiacritics = False
                          .MatchAlefHamza = False
                          .MatchControl = False
                          .MatchWildcards = False
                          .MatchSoundsLike = False
                          .MatchAllWordForms = False
                      End With
                      Selection.Find.Execute Replace:=wdReplaceAll
                      With Selection.Find
                          .Text = "''"
                          .Replacement.Text = "'"
                          .Forward = True
                          .Wrap = wdFindContinue
                          .Format = False
                          .MatchCase = False
                          .MatchWholeWord = False
                          .MatchKashida = False
                          .MatchDiacritics = False
                          .MatchAlefHamza = False
                          .MatchControl = False
                          .MatchWildcards = False
                          .MatchSoundsLike = False
                          .MatchAllWordForms = False
                      End With
                      Selection.Find.ClearFormatting
                      Selection.Find.Replacement.ClearFormatting
                      With Selection.Find
                          .Text = ".?[! ]"
                          .Replacement.Text = "@@^&"
                          .Forward = True
                          .Wrap = wdFindContinue
                          .Format = False
                          .MatchCase = False
                          .MatchWholeWord = False
                          .MatchKashida = False
                          .MatchDiacritics = False
                          .MatchAlefHamza = False
                          .MatchControl = False
                          .MatchWildcards = False
                          .MatchSoundsLike = False
                          .MatchAllWordForms = False
                      End With
                      Selection.Find.Execute Replace:=wdReplaceAll
                      With Selection.Find
                          .Text = "@@."
                          .Replacement.Text = ". "
                          .Forward = True
                          .Wrap = wdFindContinue
                          .Format = False
                          .MatchCase = False
                          .MatchWholeWord = False
                          .MatchKashida = False
                          .MatchDiacritics = False
                          .MatchAlefHamza = False
                          .MatchControl = False
                          .MatchWildcards = False
                          .MatchSoundsLike = False
                          .MatchAllWordForms = False
                      End With
                      Selection.Find.Execute Replace:=wdReplaceAll
                      Selection.Find.ClearFormatting
                      Selection.Find.Replacement.ClearFormatting
                      With Selection.Find
                          .Text = ",?[! ]"
                          .Replacement.Text = "@@^&"
                          .Forward = True
                          .Wrap = wdFindContinue
                          .Format = False
                          .MatchCase = False
                          .MatchWholeWord = False
                          .MatchKashida = False
                          .MatchDiacritics = False
                          .MatchAlefHamza = False
                          .MatchControl = False
                          .MatchWildcards = False
                          .MatchSoundsLike = False
                          .MatchAllWordForms = False
                      End With
                      Selection.Find.Execute Replace:=wdReplaceAll
                      With Selection.Find
                          .Text = "@@,"
                          .Replacement.Text = ", "
                          .Forward = True
                          .Wrap = wdFindContinue
                          .Format = False
                          .MatchCase = False
                          .MatchWholeWord = False
                          .MatchKashida = False
                          .MatchDiacritics = False
                          .MatchAlefHamza = False
                          .MatchControl = False
                          .MatchWildcards = False
                          .MatchSoundsLike = False
                          .MatchAllWordForms = False
                      End With
                      Selection.Find.Execute Replace:=wdReplaceAll
                      With Selection.Find
                          .Text = " . "
                          .Replacement.Text = ". "
                          .Forward = True
                          .Wrap = wdFindContinue
                          .Format = False
                          .MatchCase = False
                          .MatchWholeWord = False
                          .MatchKashida = False
                          .MatchDiacritics = False
                          .MatchAlefHamza = False
                          .MatchControl = False
                          .MatchWildcards = False
                          .MatchSoundsLike = False
                          .MatchAllWordForms = False
                      End With
                      Selection.Find.Execute Replace:=wdReplaceAll
                      With Selection.Find
                          .Text = " , "
                          .Replacement.Text = ", "
                          .Forward = True
                          .Wrap = wdFindContinue
                          .Format = False
                          .MatchCase = False
                          .MatchWholeWord = False
                          .MatchKashida = False
                          .MatchDiacritics = False
                          .MatchAlefHamza = False
                          .MatchControl = False
                          .MatchWildcards = False
                          .MatchSoundsLike = False
                          .MatchAllWordForms = False
                      End With
                      Selection.Find.Execute Replace:=wdReplaceAll
                      With Selection.Find
                          .Text = " ' "
                          .Replacement.Text = "' "
                          .Forward = True
                          .Wrap = wdFindContinue
                          .Format = False
                          .MatchCase = False
                          .MatchWholeWord = False
                          .MatchKashida = False
                          .MatchDiacritics = False
                          .MatchAlefHamza = False
                          .MatchControl = False
                          .MatchWildcards = False
                          .MatchSoundsLike = False
                          .MatchAllWordForms = False
                      End With
                      Selection.Find.Execute Replace:=wdReplaceAll
                      With Selection.Find
                          .Text = " ,"
                          .Replacement.Text = ","
                          .Forward = True
                          .Wrap = wdFindContinue
                          .Format = False
                          .MatchCase = False
                          .MatchWholeWord = False
                          .MatchKashida = False
                          .MatchDiacritics = False
                          .MatchAlefHamza = False
                          .MatchControl = False
                          .MatchWildcards = False
                          .MatchSoundsLike = False
                          .MatchAllWordForms = False
                      End With
                      Selection.Find.Execute Replace:=wdReplaceAll
                      With Selection.Find
                          .Text = " ."
                          .Replacement.Text = "."
                          .Forward = True
                          .Wrap = wdFindContinue
                          .Format = False
                          .MatchCase = False
                          .MatchWholeWord = False
                          .MatchKashida = False
                          .MatchDiacritics = False
                          .MatchAlefHamza = False
                          .MatchControl = False
                          .MatchWildcards = False
                          .MatchSoundsLike = False
                          .MatchAllWordForms = False
                      End With
                      Selection.Find.Execute Replace:=wdReplaceAll
                      With Selection.Find
                          .Text = "ייי"
                          .Replacement.Text = "יי"
                          .Forward = True
                          .Wrap = wdFindContinue
                          .Format = False
                          .MatchCase = False
                          .MatchWholeWord = False
                          .MatchKashida = False
                          .MatchDiacritics = False
                          .MatchAlefHamza = False
                          .MatchControl = False
                          .MatchWildcards = False
                          .MatchSoundsLike = False
                          .MatchAllWordForms = False
                      End With
                      Selection.Find.Execute Replace:=wdReplaceAll
                      With Selection.Find
                          .Text = "םם"
                          .Replacement.Text = "ם"
                          .Forward = True
                          .Wrap = wdFindContinue
                          .Format = False
                          .MatchCase = False
                          .MatchWholeWord = False
                          .MatchKashida = False
                          .MatchDiacritics = False
                          .MatchAlefHamza = False
                          .MatchControl = False
                          .MatchWildcards = False
                          .MatchSoundsLike = False
                          .MatchAllWordForms = False
                      End With
                      Selection.Find.Execute Replace:=wdReplaceAll
                      With Selection.Find
                          .Text = "ןן"
                          .Replacement.Text = "ן"
                          .Forward = True
                          .Wrap = wdFindContinue
                          .Format = False
                          .MatchCase = False
                          .MatchWholeWord = False
                          .MatchKashida = False
                          .MatchDiacritics = False
                          .MatchAlefHamza = False
                          .MatchControl = False
                          .MatchWildcards = False
                          .MatchSoundsLike = False
                          .MatchAllWordForms = False
                      End With
                      Selection.Find.Execute Replace:=wdReplaceAll
                      With Selection.Find
                          .Text = "ץץ"
                          .Replacement.Text = "ץ"
                          .Forward = True
                          .Wrap = wdFindContinue
                          .Format = False
                          .MatchCase = False
                          .MatchWholeWord = False
                          .MatchKashida = False
                          .MatchDiacritics = False
                          .MatchAlefHamza = False
                          .MatchControl = False
                          .MatchWildcards = False
                          .MatchSoundsLike = False
                          .MatchAllWordForms = False
                      End With
                      Selection.Find.Execute Replace:=wdReplaceAll
                      With Selection.Find
                          .Text = "ףף"
                          .Replacement.Text = "ף"
                          .Forward = True
                          .Wrap = wdFindContinue
                          .Format = False
                          .MatchCase = False
                          .MatchWholeWord = False
                          .MatchKashida = False
                          .MatchDiacritics = False
                          .MatchAlefHamza = False
                          .MatchControl = False
                          .MatchWildcards = False
                          .MatchSoundsLike = False
                          .MatchAllWordForms = False
                      End With
                      Selection.Find.Execute Replace:=wdReplaceAll
                      With Selection.Find
                          .Text = "ךך"
                          .Replacement.Text = "ך"
                          .Forward = True
                          .Wrap = wdFindContinue
                          .Format = False
                          .MatchCase = False
                          .MatchWholeWord = False
                          .MatchKashida = False
                          .MatchDiacritics = False
                          .MatchAlefHamza = False
                          .MatchControl = False
                          .MatchWildcards = False
                          .MatchSoundsLike = False
                          .MatchAllWordForms = False
                      End With
                      Selection.Find.Execute Replace:=wdReplaceAll
                      Selection.Find.ClearFormatting
                      Selection.Find.Replacement.ClearFormatting
                      Selection.Find.Replacement.Font.Color = wdColorRed
                      With Selection.Find
                          .Text = " ם"
                          .Replacement.Text = "^&"
                          .Forward = True
                          .Wrap = wdFindContinue
                          .Format = True
                          .MatchCase = False
                          .MatchWholeWord = False
                          .MatchKashida = False
                          .MatchDiacritics = False
                          .MatchAlefHamza = False
                          .MatchControl = False
                          .MatchWildcards = False
                          .MatchSoundsLike = False
                          .MatchAllWordForms = False
                      End With
                      Selection.Find.Execute Replace:=wdReplaceAll
                      With Selection.Find
                          .Text = " ן"
                          .Replacement.Text = "^&"
                          .Forward = True
                          .Wrap = wdFindContinue
                          .Format = True
                          .MatchCase = False
                          .MatchWholeWord = False
                          .MatchKashida = False
                          .MatchDiacritics = False
                          .MatchAlefHamza = False
                          .MatchControl = False
                          .MatchWildcards = False
                          .MatchSoundsLike = False
                          .MatchAllWordForms = False
                      End With
                      Selection.Find.Execute Replace:=wdReplaceAll
                      With Selection.Find
                          .Text = " ץ"
                          .Replacement.Text = "^&"
                          .Forward = True
                          .Wrap = wdFindContinue
                          .Format = True
                          .MatchCase = False
                          .MatchWholeWord = False
                          .MatchKashida = False
                          .MatchDiacritics = False
                          .MatchAlefHamza = False
                          .MatchControl = False
                          .MatchWildcards = False
                          .MatchSoundsLike = False
                          .MatchAllWordForms = False
                      End With
                      Selection.Find.Execute Replace:=wdReplaceAll
                      With Selection.Find
                          .Text = " ף"
                          .Replacement.Text = "^&"
                          .Forward = True
                          .Wrap = wdFindContinue
                          .Format = True
                          .MatchCase = False
                          .MatchWholeWord = False
                          .MatchKashida = False
                          .MatchDiacritics = False
                          .MatchAlefHamza = False
                          .MatchControl = False
                          .MatchWildcards = False
                          .MatchSoundsLike = False
                          .MatchAllWordForms = False
                      End With
                      Selection.Find.Execute Replace:=wdReplaceAll
                      With Selection.Find
                          .Text = " ך"
                          .Replacement.Text = "^&"
                          .Forward = True
                          .Wrap = wdFindContinue
                          .Format = True
                          .MatchCase = False
                          .MatchWholeWord = False
                          .MatchKashida = False
                          .MatchDiacritics = False
                          .MatchAlefHamza = False
                          .MatchControl = False
                          .MatchWildcards = False
                          .MatchSoundsLike = False
                          .MatchAllWordForms = False
                      End With
                      Selection.Find.ClearFormatting
                      Selection.Find.Replacement.ClearFormatting
                      Selection.Find.Replacement.Font.Color = wdColorRed
                      With Selection.Find
                      With Selection.Find
                          .Text = "ם[א-ת]"
                          .Replacement.Text = "^&"
                          .Forward = True
                          .Wrap = wdFindContinue
                          .Format = True
                          .MatchCase = False
                          .MatchWholeWord = False
                          .MatchKashida = False
                          .MatchDiacritics = False
                          .MatchAlefHamza = False
                          .MatchControl = False
                          .MatchAllWordForms = False
                          .MatchSoundsLike = False
                          .MatchWildcards = True
                      End With
                      Selection.Find.Execute Replace:=wdReplaceAll
                      With Selection.Find
                          .Text = "ן[א-ת]"
                          .Replacement.Text = "^&"
                          .Forward = True
                          .Wrap = wdFindContinue
                          .Format = True
                          .MatchCase = False
                          .MatchWholeWord = False
                          .MatchKashida = False
                          .MatchDiacritics = False
                          .MatchAlefHamza = False
                          .MatchControl = False
                          .MatchAllWordForms = False
                          .MatchSoundsLike = False
                          .MatchWildcards = True
                      End With
                      Selection.Find.Execute Replace:=wdReplaceAll
                      With Selection.Find
                          .Text = "ץ[א-ת]"
                          .Replacement.Text = "^&"
                          .Forward = True
                          .Wrap = wdFindContinue
                          .Format = True
                          .MatchCase = False
                          .MatchWholeWord = False
                          .MatchKashida = False
                          .MatchDiacritics = False
                          .MatchAlefHamza = False
                          .MatchControl = False
                          .MatchAllWordForms = False
                          .MatchSoundsLike = False
                          .MatchWildcards = True
                      End With
                      Selection.Find.Execute Replace:=wdReplaceAll
                      With Selection.Find
                          .Text = "ף[א-ת]"
                          .Replacement.Text = "^&"
                          .Forward = True
                          .Wrap = wdFindContinue
                          .Format = True
                          .MatchCase = False
                          .MatchWholeWord = False
                          .MatchKashida = False
                          .MatchDiacritics = False
                          .MatchAlefHamza = False
                          .MatchControl = False
                          .MatchAllWordForms = False
                          .MatchSoundsLike = False
                          .MatchWildcards = True
                      End With
                      Selection.Find.Execute Replace:=wdReplaceAll
                      With Selection.Find
                          .Text = "ך[א-ת]"
                          .Replacement.Text = "^&"
                          .Forward = True
                          .Wrap = wdFindContinue
                          .Format = True
                          .MatchCase = False
                          .MatchWholeWord = False
                          .MatchKashida = False
                          .MatchDiacritics = False
                          .MatchAlefHamza = False
                          .MatchControl = False
                          .MatchAllWordForms = False
                          .MatchSoundsLike = False
                          .MatchWildcards = True
                      End With
                      Selection.Find.Execute Replace:=wdReplaceAll
                      Selection.Find.ClearFormatting
                      Selection.Find.Replacement.ClearFormatting
                      Selection.Find.Replacement.Font.Color = wdColorRed
                      With Selection.Find
                          .Text = " [א-ת] "
                          .Replacement.Text = "^&"
                          .Forward = True
                          .Wrap = wdFindContinue
                          .Format = True
                          .MatchCase = False
                          .MatchWholeWord = False
                          .MatchKashida = False
                          .MatchDiacritics = False
                          .MatchAlefHamza = False
                          .MatchControl = False
                          .MatchAllWordForms = False
                          .MatchSoundsLike = False
                          .MatchWildcards = True
                      End With
                      Selection.Find.Execute Replace:=wdReplaceAll
                      With Selection.Find
                          .Text = " [א-ת]^13"
                          .Replacement.Text = "^&"
                          .Forward = True
                          .Wrap = wdFindContinue
                          .Format = True
                          .MatchCase = False
                          .MatchWholeWord = False
                          .MatchKashida = False
                          .MatchDiacritics = False
                          .MatchAlefHamza = False
                          .MatchControl = False
                          .MatchAllWordForms = False
                          .MatchSoundsLike = False
                          .MatchWildcards = True
                      End With
                      Selection.Find.Execute Replace:=wdReplaceAll
                      Selection.Find.ClearFormatting
                      Selection.Find.Replacement.ClearFormatting
                      Selection.Find.Replacement.Font.Color = wdColorAutomatic
                      With Selection.Find
                          .Text = "ן [א-ת] "
                          .Replacement.Text = "^&"
                          .Forward = True
                          .Wrap = wdFindContinue
                          .Format = True
                          .MatchCase = False
                          .MatchWholeWord = False
                          .MatchKashida = False
                          .MatchDiacritics = False
                          .MatchAlefHamza = False
                          .MatchControl = False
                          .MatchAllWordForms = False
                          .MatchSoundsLike = False
                          .MatchWildcards = True
                      End With
                      Selection.Find.Execute Replace:=wdReplaceAll
                      With Selection.Find
                          .Text = "ק [א-ת] "
                          .Replacement.Text = "^&"
                          .Forward = True
                          .Wrap = wdFindContinue
                          .Format = True
                          .MatchCase = False
                          .MatchWholeWord = False
                          .MatchKashida = False
                          .MatchDiacritics = False
                          .MatchAlefHamza = False
                          .MatchControl = False
                          .MatchAllWordForms = False
                          .MatchSoundsLike = False
                          .MatchWildcards = True
                      End With
                      Selection.Find.Execute Replace:=wdReplaceAll
                      With Selection.Find
                          .Text = "ה [א-ת] "
                          .Replacement.Text = "^&"
                          .Forward = True
                          .Wrap = wdFindContinue
                          .Format = True
                          .MatchCase = False
                          .MatchWholeWord = False
                          .MatchKashida = False
                          .MatchDiacritics = False
                          .MatchAlefHamza = False
                          .MatchControl = False
                          .MatchAllWordForms = False
                          .MatchSoundsLike = False
                          .MatchWildcards = True
                      End With
                      Selection.Find.Execute Replace:=wdReplaceAll
                      With Selection.Find
                          .Text = "ף [א-ת] "
                          .Replacement.Text = "^&"
                          .Forward = True
                          .Wrap = wdFindContinue
                          .Format = True
                          .MatchCase = False
                          .MatchWholeWord = False
                          .MatchKashida = False
                          .MatchDiacritics = False
                          .MatchAlefHamza = False
                          .MatchControl = False
                          .MatchAllWordForms = False
                          .MatchSoundsLike = False
                          .MatchWildcards = True
                      End With
                      Selection.Find.Execute Replace:=wdReplaceAll
                      With Selection.Find
                          .Text = "ת [א-ת] "
                          .Replacement.Text = "^&"
                          .Forward = True
                          .Wrap = wdFindContinue
                          .Format = True
                          .MatchCase = False
                          .MatchWholeWord = False
                          .MatchKashida = False
                          .MatchDiacritics = False
                          .MatchAlefHamza = False
                          .MatchControl = False
                          .MatchAllWordForms = False
                          .MatchSoundsLike = False
                          .MatchWildcards = True
                      End With
                      Selection.Find.Execute Replace:=wdReplaceAll
                      With Selection.Find
                          .Text = "ש [א-ת] "
                          .Replacement.Text = "^&"
                          .Forward = True
                          .Wrap = wdFindContinue
                          .Format = True
                          .MatchCase = False
                          .MatchWholeWord = False
                          .MatchKashida = False
                          .MatchDiacritics = False
                          .MatchAlefHamza = False
                          .MatchControl = False
                          .MatchAllWordForms = False
                          .MatchSoundsLike = False
                          .MatchWildcards = True
                      End With
                      Selection.Find.Execute Replace:=wdReplaceAll
                      With Selection.Find
                          .Text = "ג [א-ת] "
                          .Replacement.Text = "^&"
                          .Forward = True
                          .Wrap = wdFindContinue
                          .Format = True
                          .MatchCase = False
                          .MatchWholeWord = False
                          .MatchKashida = False
                          .MatchDiacritics = False
                          .MatchAlefHamza = False
                          .MatchControl = False
                          .MatchAllWordForms = False
                          .MatchSoundsLike = False
                          .MatchWildcards = True
                      End With
                      Selection.Find.Execute Replace:=wdReplaceAll
                      With Selection.Find
                          .Text = "' [א-ת] "
                          .Replacement.Text = "^&"
                          .Forward = True
                          .Wrap = wdFindContinue
                          .Format = True
                          .MatchCase = False
                          .MatchWholeWord = False
                          .MatchKashida = False
                          .MatchDiacritics = False
                          .MatchAlefHamza = False
                          .MatchControl = False
                          .MatchAllWordForms = False
                          .MatchSoundsLike = False
                          .MatchWildcards = True
                      End With
                      Selection.Find.Execute Replace:=wdReplaceAll
                      With Selection.Find
                          .Text = "ן [א-ת]^13"
                          .Replacement.Text = "^&"
                          .Forward = True
                          .Wrap = wdFindContinue
                          .Format = True
                          .MatchCase = False
                          .MatchWholeWord = False
                          .MatchKashida = False
                          .MatchDiacritics = False
                          .MatchAlefHamza = False
                          .MatchControl = False
                          .MatchAllWordForms = False
                          .MatchSoundsLike = False
                          .MatchWildcards = True
                      End With
                      Selection.Find.Execute Replace:=wdReplaceAll
                      With Selection.Find
                          .Text = "ק [א-ת]^13"
                          .Replacement.Text = "^&"
                          .Forward = True
                          .Wrap = wdFindContinue
                          .Format = True
                          .MatchCase = False
                          .MatchWholeWord = False
                          .MatchKashida = False
                          .MatchDiacritics = False
                          .MatchAlefHamza = False
                          .MatchControl = False
                          .MatchAllWordForms = False
                          .MatchSoundsLike = False
                          .MatchWildcards = True
                      End With
                      Selection.Find.Execute Replace:=wdReplaceAll
                      With Selection.Find
                          .Text = "ה [א-ת]^13"
                          .Replacement.Text = "^&"
                          .Forward = True
                          .Wrap = wdFindContinue
                          .Format = True
                          .MatchCase = False
                          .MatchWholeWord = False
                          .MatchKashida = False
                          .MatchDiacritics = False
                          .MatchAlefHamza = False
                          .MatchControl = False
                          .MatchAllWordForms = False
                          .MatchSoundsLike = False
                          .MatchWildcards = True
                      End With
                      Selection.Find.Execute Replace:=wdReplaceAll
                      With Selection.Find
                          .Text = "ף [א-ת]^13"
                          .Replacement.Text = "^&"
                          .Forward = True
                          .Wrap = wdFindContinue
                          .Format = True
                          .MatchCase = False
                          .MatchWholeWord = False
                          .MatchKashida = False
                          .MatchDiacritics = False
                          .MatchAlefHamza = False
                          .MatchControl = False
                          .MatchAllWordForms = False
                          .MatchSoundsLike = False
                          .MatchWildcards = True
                      End With
                      Selection.Find.Execute Replace:=wdReplaceAll
                      With Selection.Find
                          .Text = "ת [א-ת]^13"
                          .Replacement.Text = "^&"
                          .Forward = True
                          .Wrap = wdFindContinue
                          .Format = True
                          .MatchCase = False
                          .MatchWholeWord = False
                          .MatchKashida = False
                          .MatchDiacritics = False
                          .MatchAlefHamza = False
                          .MatchControl = False
                          .MatchAllWordForms = False
                          .MatchSoundsLike = False
                          .MatchWildcards = True
                      End With
                      Selection.Find.Execute Replace:=wdReplaceAll
                      With Selection.Find
                          .Text = "ש [א-ת]^13"
                          .Replacement.Text = "^&"
                          .Forward = True
                          .Wrap = wdFindContinue
                          .Format = True
                          .MatchCase = False
                          .MatchWholeWord = False
                          .MatchKashida = False
                          .MatchDiacritics = False
                          .MatchAlefHamza = False
                          .MatchControl = False
                          .MatchAllWordForms = False
                          .MatchSoundsLike = False
                          .MatchWildcards = True
                      End With
                      Selection.Find.Execute Replace:=wdReplaceAll
                      With Selection.Find
                          .Text = "ג [א-ת]^13"
                          .Replacement.Text = "^&"
                          .Forward = True
                          .Wrap = wdFindContinue
                          .Format = True
                          .MatchCase = False
                          .MatchWholeWord = False
                          .MatchKashida = False
                          .MatchDiacritics = False
                          .MatchAlefHamza = False
                          .MatchControl = False
                          .MatchAllWordForms = False
                          .MatchSoundsLike = False
                          .MatchWildcards = True
                      End With
                      Selection.Find.Execute Replace:=wdReplaceAll
                      With Selection.Find
                          .Text = "' [א-ת]^13"
                          .Replacement.Text = "^&"
                          .Forward = True
                          .Wrap = wdFindContinue
                          .Format = True
                          .MatchCase = False
                          .MatchWholeWord = False
                          .MatchKashida = False
                          .MatchDiacritics = False
                          .MatchAlefHamza = False
                          .MatchControl = False
                          .MatchAllWordForms = False
                          .MatchSoundsLike = False
                          .MatchWildcards = True
                      End With
                      Selection.Find.ClearFormatting
                      Selection.Find.Replacement.ClearFormatting
                      With Selection.Find
                          .Text = ", ("
                          .Replacement.Text = " ("
                          .Forward = True
                          .Wrap = wdFindContinue
                          .Format = False
                          .MatchCase = False
                          .MatchWholeWord = False
                          .MatchKashida = False
                          .MatchDiacritics = False
                          .MatchAlefHamza = False
                          .MatchControl = False
                          .MatchWildcards = False
                          .MatchSoundsLike = False
                          .MatchAllWordForms = False
                      End With
                      Selection.Find.Execute Replace:=wdReplaceAll
                      With Selection.Find
                          .Text = ". ["
                          .Replacement.Text = " ["
                          .Forward = True
                          .Wrap = wdFindContinue
                          .Format = False
                          .MatchCase = False
                          .MatchWholeWord = False
                          .MatchKashida = False
                          .MatchDiacritics = False
                          .MatchAlefHamza = False
                          .MatchControl = False
                          .MatchWildcards = False
                          .MatchSoundsLike = False
                          .MatchAllWordForms = False
                      End With
                      Selection.Find.Execute Replace:=wdReplaceAll
                      With Selection.Find
                          .Text = ", ["
                          .Replacement.Text = " ["
                          .Forward = True
                          .Wrap = wdFindContinue
                          .Format = False
                          .MatchCase = False
                          .MatchWholeWord = False
                          .MatchKashida = False
                          .MatchDiacritics = False
                          .MatchAlefHamza = False
                          .MatchControl = False
                          .MatchWildcards = False
                          .MatchSoundsLike = False
                          .MatchAllWordForms = False
                      End With
                      Selection.Find.Execute Replace:=wdReplaceAll
                      With Selection.Find
                          .Text = "[ "
                          .Replacement.Text = "["
                          .Forward = True
                          .Wrap = wdFindContinue
                          .Format = False
                          .MatchCase = False
                          .MatchWholeWord = False
                          .MatchKashida = False
                          .MatchDiacritics = False
                          .MatchAlefHamza = False
                          .MatchControl = False
                          .MatchWildcards = False
                          .MatchSoundsLike = False
                          .MatchAllWordForms = False
                      End With
                      Selection.Find.Execute Replace:=wdReplaceAll
                      With Selection.Find
                          .Text = " ]"
                          .Replacement.Text = "]"
                          .Forward = True
                          .Wrap = wdFindContinue
                          .Format = False
                          .MatchCase = False
                          .MatchWholeWord = False
                          .MatchKashida = False
                          .MatchDiacritics = False
                          .MatchAlefHamza = False
                          .MatchControl = False
                          .MatchWildcards = False
                          .MatchSoundsLike = False
                          .MatchAllWordForms = False
                      End With
                      Selection.Find.Execute Replace:=wdReplaceAll
                      With Selection.Find
                          .Text = "( "
                          .Replacement.Text = "("
                          .Forward = True
                          .Wrap = wdFindContinue
                          .Format = False
                          .MatchCase = False
                          .MatchWholeWord = False
                          .MatchKashida = False
                          .MatchDiacritics = False
                          .MatchAlefHamza = False
                          .MatchControl = False
                          .MatchWildcards = False
                          .MatchSoundsLike = False
                          .MatchAllWordForms = False
                      End With
                      Selection.Find.Execute Replace:=wdReplaceAll
                      With Selection.Find
                          .Text = " )"
                          .Replacement.Text = ")"
                          .Forward = True
                          .Wrap = wdFindContinue
                          .Format = False
                          .MatchCase = False
                          .MatchWholeWord = False
                          .MatchKashida = False
                          .MatchDiacritics = False
                          .MatchAlefHamza = False
                          .MatchControl = False
                          .MatchWildcards = False
                          .MatchSoundsLike = False
                          .MatchAllWordForms = False
                      End With
                      Selection.Find.Execute Replace:=wdReplaceAll
                      Selection.Find.ClearFormatting
                      Selection.Find.Replacement.ClearFormatting
                      With Selection.Find
                          .Text = "(.)([! ^13]*>)"
                          .Replacement.Text = "\1 \2"
                          .Forward = True
                          .Wrap = wdFindContinue
                          .Format = False
                          .MatchCase = False
                          .MatchWholeWord = False
                          .MatchKashida = False
                          .MatchDiacritics = False
                          .MatchAlefHamza = False
                          .MatchControl = False
                          .MatchAllWordForms = False
                          .MatchSoundsLike = False
                          .MatchWildcards = True
                      End With
                      Selection.Find.Execute Replace:=wdReplaceAll
                      With Selection.Find
                          .Text = "(,)([! ^13]*>)"
                          .Replacement.Text = "\1 \2"
                          .Forward = True
                          .Wrap = wdFindContinue
                          .Format = False
                          .MatchCase = False
                          .MatchWholeWord = False
                          .MatchKashida = False
                          .MatchDiacritics = False
                          .MatchAlefHamza = False
                          .MatchControl = False
                          .MatchAllWordForms = False
                          .MatchSoundsLike = False
                          .MatchWildcards = True
                      End With
                      Selection.Find.Execute Replace:=wdReplaceAll
                      Selection.Find.ClearFormatting
                      Selection.Find.Replacement.ClearFormatting
                      With Selection.Find
                          .Text = "([! ^13'""])([(\[])"
                          .Replacement.Text = "\1 \2"
                          .Forward = True
                          .Wrap = wdFindContinue
                          .Format = False
                          .MatchCase = False
                          .MatchWholeWord = False
                          .MatchKashida = False
                          .MatchDiacritics = False
                          .MatchAlefHamza = False
                          .MatchControl = False
                          .MatchAllWordForms = False
                          .MatchSoundsLike = False
                          .MatchWildcards = True
                      End With
                      Selection.Find.Execute Replace:=wdReplaceAll
                      With Selection.Find
                          .Text = "([)\]])([! ^13.,'""\?\!])"
                          .Replacement.Text = "\1 \2"
                          .Forward = True
                          .Wrap = wdFindContinue
                          .Format = False
                          .MatchCase = False
                          .MatchWholeWord = False
                          .MatchKashida = False
                          .MatchDiacritics = False
                          .MatchAlefHamza = False
                          .MatchControl = False
                          .MatchAllWordForms = False
                          .MatchSoundsLike = False
                          .MatchWildcards = True
                      End With
                      Selection.Find.ClearFormatting
                      Selection.Find.Replacement.ClearFormatting
                      With Selection.Find
                          .Text = "^$. )"
                          .Replacement.Text = "^&@@"
                          .Forward = True
                          .Wrap = wdFindContinue
                          .Format = False
                          .MatchCase = False
                          .MatchWholeWord = False
                          .MatchKashida = False
                          .MatchDiacritics = False
                          .MatchAlefHamza = False
                          .MatchControl = False
                          .MatchWildcards = False
                          .MatchSoundsLike = False
                          .MatchAllWordForms = False
                      End With
                      Selection.Find.Execute Replace:=wdReplaceAll
                      Selection.Find.ClearFormatting
                      Selection.Find.Replacement.ClearFormatting
                      With Selection.Find
                          .Text = " )@@"
                          .Replacement.Text = ")"
                          .Forward = True
                          .Wrap = wdFindContinue
                          .Format = False
                          .MatchCase = False
                          .MatchWholeWord = False
                          .MatchKashida = False
                          .MatchDiacritics = False
                          .MatchAlefHamza = False
                          .MatchControl = False
                          .MatchWildcards = False
                          .MatchSoundsLike = False
                          .MatchAllWordForms = False
                      End With
                      Selection.Find.Execute Replace:=wdReplaceAll
                      With Selection.Find
                          .Text = " ) "
                          .Replacement.Text = " ("
                          .Forward = True
                          .Wrap = wdFindContinue
                          .Format = False
                          .MatchCase = False
                          .MatchWholeWord = False
                          .MatchKashida = False
                          .MatchDiacritics = False
                          .MatchAlefHamza = False
                          .MatchControl = False
                          .MatchWildcards = False
                          .MatchSoundsLike = False
                          .MatchAllWordForms = False
                      End With
                      Selection.Find.Execute Replace:=wdReplaceAll
                      With Selection.Find
                          .Text = " ( "
                          .Replacement.Text = ") "
                          .Forward = True
                          .Wrap = wdFindContinue
                          .Format = False
                          .MatchCase = False
                          .MatchWholeWord = False
                          .MatchKashida = False
                          .MatchDiacritics = False
                          .MatchAlefHamza = False
                          .MatchControl = False
                          .MatchWildcards = False
                          .MatchSoundsLike = False
                          .MatchAllWordForms = False
                      End With
                      Selection.Find.ClearFormatting
                      Selection.Find.Replacement.ClearFormatting
                      With Selection.Find
                          .Text = """""^$"
                          .Replacement.Text = "@@^&"
                          .Forward = True
                          .Wrap = wdFindContinue
                          .Format = False
                          .MatchCase = False
                          .MatchWholeWord = False
                          .MatchKashida = False
                          .MatchDiacritics = False
                          .MatchAlefHamza = False
                          .MatchControl = False
                          .MatchWildcards = False
                          .MatchSoundsLike = False
                          .MatchAllWordForms = False
                      End With
                      Selection.Find.Execute Replace:=wdReplaceAll
                      With Selection.Find
                          .Text = "@@"""""
                          .Replacement.Text = """"
                          .Forward = True
                          .Wrap = wdFindContinue
                          .Format = False
                          .MatchCase = False
                          .MatchWholeWord = False
                          .MatchKashida = False
                          .MatchDiacritics = False
                          .MatchAlefHamza = False
                          .MatchControl = False
                          .MatchWildcards = False
                          .MatchSoundsLike = False
                          .MatchAllWordForms = False
                      End With
                      Selection.Find.ClearFormatting
                      Selection.Find.Replacement.ClearFormatting
                      With Selection.Find
                          .Text = "' ."
                          .Replacement.Text = "'."
                          .Forward = True
                          .Wrap = wdFindContinue
                          .Format = False
                          .MatchCase = False
                          .MatchWholeWord = False
                          .MatchKashida = False
                          .MatchDiacritics = False
                          .MatchAlefHamza = False
                          .MatchControl = False
                          .MatchWildcards = False
                          .MatchSoundsLike = False
                          .MatchAllWordForms = False
                      End With
                      Selection.Find.Execute Replace:=wdReplaceAll
                      Selection.Find.ClearFormatting
                      Selection.Find.Replacement.ClearFormatting
                      With Selection.Find
                          .Text = "' ,"
                          .Replacement.Text = "',"
                          .Forward = True
                          .Wrap = wdFindContinue
                          .Format = False
                          .MatchCase = False
                          .MatchWholeWord = False
                          .MatchKashida = False
                          .MatchDiacritics = False
                          .MatchAlefHamza = False
                          .MatchControl = False
                          .MatchWildcards = False
                          .MatchSoundsLike = False
                          .MatchAllWordForms = False
                      End With
                      Selection.Find.ClearFormatting
                      Selection.Find.Replacement.ClearFormatting
                      With Selection.Find
                          .Text = "' ]"
                          .Replacement.Text = "']"
                          .Forward = True
                          .Wrap = wdFindContinue
                          .Format = False
                          .MatchCase = False
                          .MatchWholeWord = False
                          .MatchKashida = False
                          .MatchDiacritics = False
                          .MatchAlefHamza = False
                          .MatchControl = False
                          .MatchWildcards = False
                          .MatchSoundsLike = False
                          .MatchAllWordForms = False
                      End With
                      Selection.Find.Execute Replace:=wdReplaceAll
                      Selection.Find.ClearFormatting
                      Selection.Find.Replacement.ClearFormatting
                      With Selection.Find
                          .Text = "  "
                          .Replacement.Text = " "
                          .Forward = True
                          .Wrap = wdFindContinue
                          .Format = False
                          .MatchCase = False
                          .MatchWholeWord = False
                          .MatchKashida = False
                          .MatchDiacritics = False
                          .MatchAlefHamza = False
                          .MatchControl = False
                          .MatchWildcards = False
                          .MatchSoundsLike = False
                          .MatchAllWordForms = False
                      End With
                      Selection.Find.Execute Replace:=wdReplaceAll
                      Selection.Find.ClearFormatting
                      Selection.Find.Replacement.ClearFormatting
                      With Selection.Find
                          .Text = "^p^p"
                          .Replacement.Text = "^p"
                          .Forward = True
                          .Wrap = wdFindContinue
                          .Format = False
                          .MatchCase = False
                          .MatchWholeWord = False
                          .MatchKashida = False
                          .MatchDiacritics = False
                          .MatchAlefHamza = False
                          .MatchControl = False
                          .MatchWildcards = False
                          .MatchSoundsLike = False
                          .MatchAllWordForms = False
                      End With
                      Selection.Find.Execute Replace:=wdReplaceAll
                      With Selection.Find
                          .Text = " ^p"
                          .Replacement.Text = "^p"
                          .Forward = True
                          .Wrap = wdFindContinue
                          .Format = False
                          .MatchCase = False
                          .MatchWholeWord = False
                          .MatchKashida = False
                          .MatchDiacritics = False
                          .MatchAlefHamza = False
                          .MatchControl = False
                          .MatchWildcards = False
                          .MatchSoundsLike = False
                          .MatchAllWordForms = False
                      End With
                      Selection.Find.ClearFormatting
                      Selection.Find.Replacement.ClearFormatting
                      Selection.Find.Replacement.Font.Color = wdColorRed
                      With Selection.Find
                          .Text = """^$'"
                          .Replacement.Text = "^&"
                          .Forward = True
                          .Wrap = wdFindContinue
                          .Format = True
                          .MatchCase = False
                          .MatchWholeWord = False
                          .MatchKashida = False
                          .MatchDiacritics = False
                          .MatchAlefHamza = False
                          .MatchControl = False
                          .MatchWildcards = False
                          .MatchSoundsLike = False
                          .MatchAllWordForms = False
                      End With
                      Selection.Find.Execute Replace:=wdReplaceAll
                      Selection.Find.ClearFormatting
                      Selection.Find.Replacement.ClearFormatting
                      With Selection.Find
                          .Text = "^l ["
                          .Replacement.Text = "^l["
                          .Forward = True
                          .Wrap = wdFindContinue
                          .Format = False
                          .MatchCase = False
                          .MatchWholeWord = False
                          .MatchKashida = False
                          .MatchDiacritics = False
                          .MatchAlefHamza = False
                          .MatchControl = False
                          .MatchWildcards = False
                          .MatchSoundsLike = False
                          .MatchAllWordForms = False
                      End With
                      Selection.Find.Execute Replace:=wdReplaceAll
                      With Selection.Find
                          .Text = " ^l ["
                          .Replacement.Text = "^l["
                          .Forward = True
                          .Wrap = wdFindContinue
                          .Format = False
                          .MatchCase = False
                          .MatchWholeWord = False
                          .MatchKashida = False
                          .MatchDiacritics = False
                          .MatchAlefHamza = False
                          .MatchControl = False
                          .MatchWildcards = False
                          .MatchSoundsLike = False
                          .MatchAllWordForms = False
                      End With
                      Selection.Find.Execute Replace:=wdReplaceAll
                      End With
                      Selection.Find.Execute Replace:=wdReplaceAll
                  End Sub
                  

                  ביקשתי מג'מיני - ייעול של הקוד, והנה הוא לפניכם - בתוספת חלונית מידע בסוף הריצה על כמות התיקונים שהמאקרו ביצע.
                  אשמח להערות והארות עליו, מה ניתן להוסיף ולשפר, ומה לא עובד בו טוב, לא עברתי על הקוד שנוצר בעיון, רק בדקתי שהוא רץ טוב ושהוא באמת מתקן.

                  Sub תיקון_סימנים_כפולים_ ועוד()
                      ' עצירת רענון המסך למהירות ריצה מקסימלית
                      Application.ScreenUpdating = False
                      
                      Dim cntPunctuation As Long
                      Dim cntSpaces As Long
                      Dim cntRed As Long
                      Dim cntClean As Long
                      Dim i As Long
                      Dim spacesChanged As Long
                      
                      Dim arrFind As Variant, arrRep As Variant
                      
                      ' =======================================================
                      ' --- קטגוריה 1: סימני פיסוק וכפילויות (סדר פעולות קריטי) ---
                      ' =======================================================
                      
                      ' 1. נקודה כפול 4 ומעלה -> החלף בנקודה בודדת
                      cntPunctuation = cntPunctuation + FastReplaceAndCount(".{4,}", ".", True)
                      
                      ' 2. הגנה על 3 נקודות (...) כדי שלא ייהרסו - החלפה זמנית למחרוזת ייחודית
                      cntPunctuation = cntPunctuation + FastReplaceAndCount("...", "|||", False)
                      
                      ' 3. נקודה כפולה (..) -> החלף בנקודה בודדת
                      cntPunctuation = cntPunctuation + FastReplaceAndCount("..", ".", False)
                      
                      ' 4. החזרת ה-3 נקודות (...) למקומן המקורי
                      cntPunctuation = cntPunctuation + FastReplaceAndCount("|||", "...", False)
                      
                      ' 5. שלושה ייי -> החלף לשניים
                      cntPunctuation = cntPunctuation + FastReplaceAndCount("ייי", "יי", False)
                      
                      ' 6. שאר הכפילויות (פסיק כפול, גרש כפול, מרכאות כפולות כפולות, ואותיות סופיות כפולות)
                      arrFind = Array(",,", "''", "םם", "ןן", "ץץ", "ףף", "ךך", """""")
                      arrRep = Array(",", "'", "ם", "ן", "ץ", "ף", "ך", """")
                      For i = LBound(arrFind) To UBound(arrFind)
                          cntPunctuation = cntPunctuation + FastReplaceAndCount(CStr(arrFind(i)), CStr(arrRep(i)), False)
                      Next i
                      
                      ' =======================================================
                      ' --- קטגוריה 2: תיקוני רווחים, סוגריים ומעברים ---
                      ' =======================================================
                      
                      ' 1. רווח כפול -> החלף ברווח בודד (בלולאה עד לניקוי מלא של רווחים משולשים ומעלה)
                      Do
                          spacesChanged = FastReplaceAndCount("  ", " ", False)
                          cntSpaces = cntSpaces + spacesChanged
                      Loop While spacesChanged > 0
                      
                      ' 2. אנטר כפול -> החלף באנטר בודד
                      cntSpaces = cntSpaces + FastReplaceAndCount("^p^p", "^p", False)
                      
                      ' 3. רווח ואז מעבר שורה או מעבר פסקה -> מחק את הרווח
                      cntSpaces = cntSpaces + FastReplaceAndCount(" ^l", "^l", False)
                      cntSpaces = cntSpaces + FastReplaceAndCount(" ^p", "^p", False)
                      cntSpaces = cntSpaces + FastReplaceAndCount("^p ", "^p", False)
                      
                      ' 4. מילה רווח ואז נקודה/פסיק/גרש -> החלף בסימן ואז רווח
                      cntSpaces = cntSpaces + FastReplaceAndCount(" .", ". ", False)
                      cntSpaces = cntSpaces + FastReplaceAndCount(" ,", ", ", False)
                      cntSpaces = cntSpaces + FastReplaceAndCount(" '", "' ", False)
                      
                      ' 5. רווחים סביב סוגריים (פותח וסוגר)
                      cntSpaces = cntSpaces + FastReplaceAndCount("( ", "(", False)
                      cntSpaces = cntSpaces + FastReplaceAndCount("[ ", "[", False)
                      cntSpaces = cntSpaces + FastReplaceAndCount(" )", ")", False)
                      cntSpaces = cntSpaces + FastReplaceAndCount(" ]", "]", False)
                      
                      ' 6. סוגר סוגריים שאחריו רווח ופסיק או נקודה -> מחק את הרווח
                      cntSpaces = cntSpaces + FastReplaceAndCount(") .", ").", False)
                      cntSpaces = cntSpaces + FastReplaceAndCount(") ,", "),", False)
                      cntSpaces = cntSpaces + FastReplaceAndCount("] .", "].", False)
                      cntSpaces = cntSpaces + FastReplaceAndCount("] ,", "],", False)
                      
                      ' 7. נקודה/פסיק ואחריהם סוגריים -> העברה אל אחרי הסוגריים (בתנאי שאין שם כבר)
                      cntSpaces = cntSpaces + FastReplaceAndCount("\.([\(\)\[\]])\.", "\1.", True)
                      cntSpaces = cntSpaces + FastReplaceAndCount("\.([\(\)\[\]])", "\1.", True)
                      cntSpaces = cntSpaces + FastReplaceAndCount("\,([\(\)\[\]])\,", "\1,", True)
                      cntSpaces = cntSpaces + FastReplaceAndCount("\,([\(\)\[\]])", "\1,", True)
                      
                      ' 8. נקודה או פסיק ואז תו שאינו רווח (אות עברית) -> הוספת רווח אחרי הסימן
                      cntSpaces = cntSpaces + FastReplaceAndCount("(\.)([א-ת])", "\1 \2", True)
                      cntSpaces = cntSpaces + FastReplaceAndCount("(\,)([א-ת])", "\1 \2", True)
                      
                      ' 9. גרש בסוף מילה כאשר יש כבר מרכאות בתוך המילה -> מחק את הגרש המיותר בסוף
                      cntSpaces = cntSpaces + FastReplaceAndCount("([א-ת])""([א-ת]+)'", "\1""\2", True)
                      
                      ' 10. רווח ואז אות סופית -> אות סופית ואז רווח
                      arrFind = Array(" ם", " ן", " ץ", " ף", " ך")
                      arrRep = Array("ם ", "ן ", "ץ ", "ף ", "ך ")
                      For i = LBound(arrFind) To UBound(arrFind)
                          cntSpaces = cntSpaces + FastReplaceAndCount(CStr(arrFind(i)), CStr(arrRep(i)), False)
                      Next i
                      
                      ' =======================================================
                      ' --- קטגוריה 3: צביעה באדום לסימון שגיאות ---
                      ' =======================================================
                      
                      ' 1. אות סופית ואז אות רגילה מ-א' עד ת' (ללא רווח ביניהן)
                      cntRed = cntRed + FastReplaceAndCount("[םןץףך][א-ת]", "^&", True, wdColorRed)
                      
                      ' 2. רווח - אות בודדת - רווח (או מעבר פסקה)
                      cntRed = cntRed + FastReplaceAndCount(" [א-ת] ", "^&", True, wdColorRed)
                      cntRed = cntRed + FastReplaceAndCount(" [א-ת]^13", "^&", True, wdColorRed)
                      
                      ' 3. סוף מילה ואחריה מרכאות -> צביעת המרכאות בלבד באדום (מבלי לגעת בראשי תיבות!)
                      Selection.HomeKey Unit:=wdStory
                      With Selection.Find
                          .ClearFormatting
                          .Text = "[א-ת]"""
                          .MatchWildcards = True
                          .Wrap = wdFindStop
                          
                          Dim lastPosQuote As Long
                          lastPosQuote = -1
                          
                          Do While .Execute
                              If Selection.Start = lastPosQuote Then Exit Do
                              lastPosQuote = Selection.Start
                              
                              Dim isAcronym As Boolean
                              isAcronym = False
                              
                              ' בודקים את התו שמופיע מיד אחרי המרכאות
                              If Selection.End < ActiveDocument.Content.End Then
                                  Dim nextChar As String
                                  nextChar = ActiveDocument.Range(Selection.End, Selection.End + 1).Text
                                  ' אם התו הבא הוא אות עברית, סימן שמדובר בראשי תיבות
                                  If nextChar Like "[א-ת]" Then
                                      isAcronym = True
                                  End If
                              End If
                              
                              ' צובעים רק אם לא מדובר בראשי תיבות
                              If Not isAcronym Then
                                  ActiveDocument.Range(Selection.End - 1, Selection.End).Font.Color = wdColorRed
                                  cntRed = cntRed + 1
                              End If
                              
                              Selection.Collapse wdCollapseEnd
                          Loop
                      End With
                      
                      ' =======================================================
                      ' --- קטגוריה 4: ניקוי הדגשות אדומות מותרות (חריגים) ---
                      ' =======================================================
                      ' החזרת צבע אוטומטי לאותיות בודדות שמגיעות אחרי האותיות המותרות בדרישה
                      arrFind = Array("ן [א-ת] ", "ק [א-ת] ", "ה [א-ת] ", "ף [א-ת] ", "ת [א-ת] ", "ש [א-ת] ", "ג [א-ת] ", "' [א-ת] ", "ם [א-ת] ", _
                                      "ן [א-ת]^13", "ק [א-ת]^13", "ה [א-ת]^13", "ף [א-ת]^13", "ת [א-ת]^13", "ש [א-ת]^13", "ג [א-ת]^13", "' [א-ת]^13", "ם [א-ת]^13")
                      For i = LBound(arrFind) To UBound(arrFind)
                          cntClean = cntClean + FastReplaceAndCount(CStr(arrFind(i)), "^&", True, wdColorAutomatic)
                      Next i
                      
                      ' =======================================================
                      ' --- קטגוריה 5: תיקון באג סוגריים הפוכים ב-Word RTL ---
                      ' =======================================================
                      Selection.HomeKey Unit:=wdStory
                      With Selection.Find
                          .ClearFormatting
                          .Text = "[\(\)\[\]]"
                          .MatchWildcards = True
                          .Wrap = wdFindStop
                          
                          Dim lastPosBracket As Long
                          lastPosBracket = -1
                          
                          Do While .Execute
                              If Selection.Start = lastPosBracket Then Exit Do
                              lastPosBracket = Selection.Start
                              
                              Dim charFont As String
                              charFont = ""
                              
                              If Selection.End < ActiveDocument.Content.End Then
                                  charFont = ActiveDocument.Range(Selection.End, Selection.End + 1).Font.NameBi
                              End If
                              If charFont = "" And Selection.Start > 0 Then
                                  charFont = ActiveDocument.Range(Selection.Start - 1, Selection.Start).Font.NameBi
                              End If
                              
                              If charFont <> "" Then
                                  Selection.Font.Name = charFont
                                  Selection.Font.NameBi = charFont
                                  Selection.Font.NameAscii = charFont
                                  Selection.Font.NameOther = charFont
                              End If
                              Selection.Collapse wdCollapseEnd
                          Loop
                      End With
                      
                      ' הפעלת רענון המסך בחזרה בסיום הריצה
                      Application.ScreenUpdating = True
                      
                      ' =======================================================
                      ' --- 6. הפקת הודעת דיווח וסיכום ---
                      ' =======================================================
                      Dim msg As String
                      Dim totalChanges As Long
                      totalChanges = cntPunctuation + cntSpaces + cntRed + cntClean
                      
                      msg = "הפעולה הושלמה בהצלחה!" & vbCrLf & vbCrLf & _
                            "--- פירוט השינויים שבוצעו במסמך ---" & vbCrLf & _
                            "* סימני פיסוק וכפילויות שניקו: " & cntPunctuation & vbCrLf & _
                            "* תיקוני רווחים, סוגריים ומעברים: " & cntSpaces & vbCrLf & _
                            "* שגיאות ואותיות סופיות שנצבעו באדום: " & cntRed & vbCrLf & _
                            "* הדגשות שבוטלו (הוחזרו לצבע רגיל): " & cntClean & vbCrLf & _
                            "----------------------------------------" & vbCrLf & _
                            "סך כל השינויים שבוצעו במסמך: " & totalChanges
                            
                      MsgBox msg, vbInformation + vbMsgBoxRight + vbMsgBoxRtlReading, "דו""ח סיום תיקון מסמך"
                  End Sub
                   
                  ' פונקציית עזר פנימית קבועה ואמינה לספירה ולהחלפה מהירה במסמך (כולל הגנת מיקום)
                  Private Function FastReplaceAndCount(ByVal findText As String, ByVal replaceText As String, ByVal isWildcard As Boolean, Optional ByVal repColor As Long = -1) As Long
                      Dim c As Long
                      c = 0
                      Selection.HomeKey Unit:=wdStory
                      
                      Dim lastPos As Long
                      lastPos = -1
                      
                      ' שלב א: ספירת מופעים מוגנת
                      With Selection.Find
                          .ClearFormatting
                          .Text = findText
                          .MatchWildcards = isWildcard
                          .Forward = True
                          .Wrap = wdFindStop
                          
                          Do While .Execute
                              If Selection.Start = lastPos Then Exit Do
                              lastPos = Selection.Start
                              c = c + 1
                              Selection.Collapse wdCollapseEnd
                          Loop
                      End With
                      
                      ' שלב ב: ביצוע ההחלפה בפועל במידה ונמצאו מופעים
                      If c > 0 Then
                          Selection.HomeKey Unit:=wdStory
                          With Selection.Find
                              .ClearFormatting
                              .Replacement.ClearFormatting
                              .Text = findText
                              .Replacement.Text = replaceText
                              .MatchWildcards = isWildcard
                              .Forward = True
                              .Wrap = wdFindContinue
                              If repColor <> -1 Then .Replacement.Font.Color = repColor
                              .Execute Replace:=wdReplaceAll
                          End With
                      End If
                      
                      FastReplaceAndCount = c
                  End Function
                  

                  1. ניקוי כפילויות של סימני פיסוק ואותיות
                    בשלב הראשון, המאקרו עובר על המסמך ומנקה הקלדות כפולות ומיותרות:

                  נקודות כפולות: מחליף שתי נקודות רצופות (..) בנקודה אחת.

                  ריבוי נקודות: מחליף רצף של ארבע נקודות או יותר (....) בנקודה אחת (באמצעות זיהוי תבניות חכם).

                  פסיקים וגרשיים: מחליף פסיק כפול (,,) בפסיק בודד, ושני גרשיים רצופים ('') בגרש בודד.

                  אותיות סופיות כפולות: מחליף רצפים שגויים של אותיות סופיות (םם, ןן, ץץ, ףף, ךך) באות סופית אחת.

                  קיצור יודי"ם: מחליף שלושה יודי"ם רצופים (ייי) בשניים (יי).

                  1. סידור רווחים, סוגריים ומעברי שורה
                    בשלב זה, המאקרו מטפל בנראות הכללית של הטקסט ומוודא שהריווח תקין:

                  הוספת רווחים חסרים: אם הוקלדה נקודה או פסיק ומיד אחריהם מילה (ללא רווח), המאקרו מפריד ביניהם ומוסיף את הרווח החסר.

                  הסרת רווחים לפני סימני פיסוק: מתקן שגיאות שבהן הוקלד רווח לפני נקודה, פסיק או גרש (לדוגמה: הופך , ל-, ).

                  ניקוי רווחים בתוך סוגריים: מוחק רווחים מיותרים שמופיעים מיד לאחר פתיחת סוגריים או רגע לפני סגירתם (הופך ( מילה ) ל-(מילה)).

                  ריווח חיצוני לסוגריים: מוודא שיש רווח תקני לפני פתיחת סוגריים ואחרי סגירת סוגריים (בתנאי שאין שם סימן פיסוק אחר).

                  מחיקת רווחים כפולים: סורק את כל המסמך ומצמצם כל רווח כפול לרווח אחד.

                  סידור אנטרים ומעברי שורה: מחליף שני אנטרים רצופים (פסקאות ריקות) באנטר אחד, ומוחק רווחים מיותרים שהוקלדו בטעות בדיוק לפני אנטר או לפני מעבר שורה ידני (Shift+Enter).

                  1. איתור שגיאות הקלדה והדגשתן באדום (בקרת איכות)
                    המאקרו משמש כעורך לשוני שמתריע על מילים קטועות או שגיאות הקלדה נפוצות על ידי צביעתן באדום:

                  אות סופית בתחילת מילה: מזהה וצובע אות סופית (ם, ן, ץ, ף, ך) שהוקלדה מיד אחרי רווח.

                  אות סופית באמצע מילה: מזהה וצובע אות סופית שמיד אחריה הוקלדה אות רגילה (לדוגמה: המילה "שלוםם" תצבע את ה-'ם' הראשונה, או "עכשיןו").

                  אותיות בודדות וקטועות: מזהה אותיות בודדות שעומדות לבדן (רווח לפני ורווח או אנטר אחרי) וצובע אותן, כדי להתריע על מילה שנקטעה בטעות.

                  1. החזרת צבע רגיל למקרים לגיטימיים (ניקוי הדגשות)
                    מכיוון שהשלב הקודם צובע כל אות בודדת, המאקרו חכם מספיק כדי לעבור שוב ולבטל את הצבע האדום (להחזיר לשחור/אוטומטי) עבור אותיות בודדות שהן תקינות לחלוטין בשפה העברית:

                  מסיר את הצבע מאותיות הקידומת או מילים בנות אות אחת: ן, ק, ה, ף, ת, ש, ג (למשל ה' הידיעה, ו' החיבור אם הוקלדה בטעות כבודדת, וכד').

                  מסיר את הצבע מגרש בודד שמגיע אחרי אותיות.

                  1. סנכרון ותיקון עיצוב סוגריים (טיפול בבאג של Word)
                    המאקרו סורק מחדש את כל המסמך ומחפש כל תו של סוגריים עגולים () או מרובעים [].

                  עבור כל סוגר שהוא מוצא, הוא "מסתכל" על האות העברית שצמודה אליו וקורא את סוג הגופן שלה (למשל: פרנק-ריל, דוד, נרקיסים).

                  הוא "מכריח" את הסוגריים לקבל בדיוק את אותו הגופן העברי, ובכך מונע את התופעה שבה הסוגריים "קופצים" לעיצוב אנגלי (כמו Arial) ונראים מנותקים, עבים או לא שייכים לטקסט.

                  עריכה:
                  הקוד החדש נערך ותוקן

                  דאנציגד תגובה 1 תגובה אחרונה
                  2
                  • יאיר דניאלי יאיר דניאל

                    מאקרו תיקון סמינים כפולים ושגיאות הקלדה

                    (פירוט הפעולות שנעשות ע"י המאקרו - בספויילר בסוף ההודעה)

                    העליתי בעבר מאקרו לתיקון סימנים כפולים ושגיאות הקלדה - משהו שיצרתי לאט לאט - תוכ"ד כתיבה ושימת לב לשגיאות נפוצות, הבעיה היא שהוא לא היה כתוב נכון, מכיון שהוא גרם לוורד לעשות כל פעולת החלפה - על כל המסמך ואז שוב - ההחלפה הבאה, מהתחלה ועד הסוף, מה שיצר גם קוד ארוך במיוחד.

                    הנה הוא, סתם לשם התרשמות:

                    Sub תיקון_סימנים_כפולים_ועוד()
                    '
                    ' תיקון_סימנים_כפולים_ועוד Macro
                    '
                    '
                    '
                        Selection.Find.ClearFormatting
                        Selection.Find.Replacement.ClearFormatting
                        With Selection.Find
                            .Text = ".."
                            .Replacement.Text = "."
                            .Forward = True
                            .Wrap = wdFindContinue
                            .Format = False
                            .MatchCase = False
                            .MatchWholeWord = False
                            .MatchKashida = False
                            .MatchDiacritics = False
                            .MatchAlefHamza = False
                            .MatchControl = False
                            .MatchWildcards = False
                            .MatchSoundsLike = False
                            .MatchAllWordForms = False
                        End With
                        Selection.Find.ClearFormatting
                        Selection.Find.Replacement.ClearFormatting
                        With Selection.Find
                            .Text = ".{4,}"
                            .Replacement.Text = "."
                            .Forward = True
                            .Wrap = wdFindContinue
                            .Format = False
                            .MatchCase = False
                            .MatchWholeWord = False
                            .MatchKashida = False
                            .MatchDiacritics = False
                            .MatchAlefHamza = False
                            .MatchControl = False
                            .MatchAllWordForms = False
                            .MatchSoundsLike = False
                            .MatchWildcards = True
                        End With
                        Selection.Find.Execute Replace:=wdReplaceAll
                        With Selection.Find
                            .Text = ",,"
                            .Replacement.Text = ","
                            .Forward = True
                            .Wrap = wdFindContinue
                            .Format = False
                            .MatchCase = False
                            .MatchWholeWord = False
                            .MatchKashida = False
                            .MatchDiacritics = False
                            .MatchAlefHamza = False
                            .MatchControl = False
                            .MatchWildcards = False
                            .MatchSoundsLike = False
                            .MatchAllWordForms = False
                        End With
                        Selection.Find.Execute Replace:=wdReplaceAll
                        With Selection.Find
                            .Text = "''"
                            .Replacement.Text = "'"
                            .Forward = True
                            .Wrap = wdFindContinue
                            .Format = False
                            .MatchCase = False
                            .MatchWholeWord = False
                            .MatchKashida = False
                            .MatchDiacritics = False
                            .MatchAlefHamza = False
                            .MatchControl = False
                            .MatchWildcards = False
                            .MatchSoundsLike = False
                            .MatchAllWordForms = False
                        End With
                        Selection.Find.Execute Replace:=wdReplaceAll
                        With Selection.Find
                            .Text = "''"
                            .Replacement.Text = "'"
                            .Forward = True
                            .Wrap = wdFindContinue
                            .Format = False
                            .MatchCase = False
                            .MatchWholeWord = False
                            .MatchKashida = False
                            .MatchDiacritics = False
                            .MatchAlefHamza = False
                            .MatchControl = False
                            .MatchWildcards = False
                            .MatchSoundsLike = False
                            .MatchAllWordForms = False
                        End With
                        Selection.Find.ClearFormatting
                        Selection.Find.Replacement.ClearFormatting
                        With Selection.Find
                            .Text = ".?[! ]"
                            .Replacement.Text = "@@^&"
                            .Forward = True
                            .Wrap = wdFindContinue
                            .Format = False
                            .MatchCase = False
                            .MatchWholeWord = False
                            .MatchKashida = False
                            .MatchDiacritics = False
                            .MatchAlefHamza = False
                            .MatchControl = False
                            .MatchWildcards = False
                            .MatchSoundsLike = False
                            .MatchAllWordForms = False
                        End With
                        Selection.Find.Execute Replace:=wdReplaceAll
                        With Selection.Find
                            .Text = "@@."
                            .Replacement.Text = ". "
                            .Forward = True
                            .Wrap = wdFindContinue
                            .Format = False
                            .MatchCase = False
                            .MatchWholeWord = False
                            .MatchKashida = False
                            .MatchDiacritics = False
                            .MatchAlefHamza = False
                            .MatchControl = False
                            .MatchWildcards = False
                            .MatchSoundsLike = False
                            .MatchAllWordForms = False
                        End With
                        Selection.Find.Execute Replace:=wdReplaceAll
                        Selection.Find.ClearFormatting
                        Selection.Find.Replacement.ClearFormatting
                        With Selection.Find
                            .Text = ",?[! ]"
                            .Replacement.Text = "@@^&"
                            .Forward = True
                            .Wrap = wdFindContinue
                            .Format = False
                            .MatchCase = False
                            .MatchWholeWord = False
                            .MatchKashida = False
                            .MatchDiacritics = False
                            .MatchAlefHamza = False
                            .MatchControl = False
                            .MatchWildcards = False
                            .MatchSoundsLike = False
                            .MatchAllWordForms = False
                        End With
                        Selection.Find.Execute Replace:=wdReplaceAll
                        With Selection.Find
                            .Text = "@@,"
                            .Replacement.Text = ", "
                            .Forward = True
                            .Wrap = wdFindContinue
                            .Format = False
                            .MatchCase = False
                            .MatchWholeWord = False
                            .MatchKashida = False
                            .MatchDiacritics = False
                            .MatchAlefHamza = False
                            .MatchControl = False
                            .MatchWildcards = False
                            .MatchSoundsLike = False
                            .MatchAllWordForms = False
                        End With
                        Selection.Find.Execute Replace:=wdReplaceAll
                        With Selection.Find
                            .Text = " . "
                            .Replacement.Text = ". "
                            .Forward = True
                            .Wrap = wdFindContinue
                            .Format = False
                            .MatchCase = False
                            .MatchWholeWord = False
                            .MatchKashida = False
                            .MatchDiacritics = False
                            .MatchAlefHamza = False
                            .MatchControl = False
                            .MatchWildcards = False
                            .MatchSoundsLike = False
                            .MatchAllWordForms = False
                        End With
                        Selection.Find.Execute Replace:=wdReplaceAll
                        With Selection.Find
                            .Text = " , "
                            .Replacement.Text = ", "
                            .Forward = True
                            .Wrap = wdFindContinue
                            .Format = False
                            .MatchCase = False
                            .MatchWholeWord = False
                            .MatchKashida = False
                            .MatchDiacritics = False
                            .MatchAlefHamza = False
                            .MatchControl = False
                            .MatchWildcards = False
                            .MatchSoundsLike = False
                            .MatchAllWordForms = False
                        End With
                        Selection.Find.Execute Replace:=wdReplaceAll
                        With Selection.Find
                            .Text = " ' "
                            .Replacement.Text = "' "
                            .Forward = True
                            .Wrap = wdFindContinue
                            .Format = False
                            .MatchCase = False
                            .MatchWholeWord = False
                            .MatchKashida = False
                            .MatchDiacritics = False
                            .MatchAlefHamza = False
                            .MatchControl = False
                            .MatchWildcards = False
                            .MatchSoundsLike = False
                            .MatchAllWordForms = False
                        End With
                        Selection.Find.Execute Replace:=wdReplaceAll
                        With Selection.Find
                            .Text = " ,"
                            .Replacement.Text = ","
                            .Forward = True
                            .Wrap = wdFindContinue
                            .Format = False
                            .MatchCase = False
                            .MatchWholeWord = False
                            .MatchKashida = False
                            .MatchDiacritics = False
                            .MatchAlefHamza = False
                            .MatchControl = False
                            .MatchWildcards = False
                            .MatchSoundsLike = False
                            .MatchAllWordForms = False
                        End With
                        Selection.Find.Execute Replace:=wdReplaceAll
                        With Selection.Find
                            .Text = " ."
                            .Replacement.Text = "."
                            .Forward = True
                            .Wrap = wdFindContinue
                            .Format = False
                            .MatchCase = False
                            .MatchWholeWord = False
                            .MatchKashida = False
                            .MatchDiacritics = False
                            .MatchAlefHamza = False
                            .MatchControl = False
                            .MatchWildcards = False
                            .MatchSoundsLike = False
                            .MatchAllWordForms = False
                        End With
                        Selection.Find.Execute Replace:=wdReplaceAll
                        With Selection.Find
                            .Text = "ייי"
                            .Replacement.Text = "יי"
                            .Forward = True
                            .Wrap = wdFindContinue
                            .Format = False
                            .MatchCase = False
                            .MatchWholeWord = False
                            .MatchKashida = False
                            .MatchDiacritics = False
                            .MatchAlefHamza = False
                            .MatchControl = False
                            .MatchWildcards = False
                            .MatchSoundsLike = False
                            .MatchAllWordForms = False
                        End With
                        Selection.Find.Execute Replace:=wdReplaceAll
                        With Selection.Find
                            .Text = "םם"
                            .Replacement.Text = "ם"
                            .Forward = True
                            .Wrap = wdFindContinue
                            .Format = False
                            .MatchCase = False
                            .MatchWholeWord = False
                            .MatchKashida = False
                            .MatchDiacritics = False
                            .MatchAlefHamza = False
                            .MatchControl = False
                            .MatchWildcards = False
                            .MatchSoundsLike = False
                            .MatchAllWordForms = False
                        End With
                        Selection.Find.Execute Replace:=wdReplaceAll
                        With Selection.Find
                            .Text = "ןן"
                            .Replacement.Text = "ן"
                            .Forward = True
                            .Wrap = wdFindContinue
                            .Format = False
                            .MatchCase = False
                            .MatchWholeWord = False
                            .MatchKashida = False
                            .MatchDiacritics = False
                            .MatchAlefHamza = False
                            .MatchControl = False
                            .MatchWildcards = False
                            .MatchSoundsLike = False
                            .MatchAllWordForms = False
                        End With
                        Selection.Find.Execute Replace:=wdReplaceAll
                        With Selection.Find
                            .Text = "ץץ"
                            .Replacement.Text = "ץ"
                            .Forward = True
                            .Wrap = wdFindContinue
                            .Format = False
                            .MatchCase = False
                            .MatchWholeWord = False
                            .MatchKashida = False
                            .MatchDiacritics = False
                            .MatchAlefHamza = False
                            .MatchControl = False
                            .MatchWildcards = False
                            .MatchSoundsLike = False
                            .MatchAllWordForms = False
                        End With
                        Selection.Find.Execute Replace:=wdReplaceAll
                        With Selection.Find
                            .Text = "ףף"
                            .Replacement.Text = "ף"
                            .Forward = True
                            .Wrap = wdFindContinue
                            .Format = False
                            .MatchCase = False
                            .MatchWholeWord = False
                            .MatchKashida = False
                            .MatchDiacritics = False
                            .MatchAlefHamza = False
                            .MatchControl = False
                            .MatchWildcards = False
                            .MatchSoundsLike = False
                            .MatchAllWordForms = False
                        End With
                        Selection.Find.Execute Replace:=wdReplaceAll
                        With Selection.Find
                            .Text = "ךך"
                            .Replacement.Text = "ך"
                            .Forward = True
                            .Wrap = wdFindContinue
                            .Format = False
                            .MatchCase = False
                            .MatchWholeWord = False
                            .MatchKashida = False
                            .MatchDiacritics = False
                            .MatchAlefHamza = False
                            .MatchControl = False
                            .MatchWildcards = False
                            .MatchSoundsLike = False
                            .MatchAllWordForms = False
                        End With
                        Selection.Find.Execute Replace:=wdReplaceAll
                        Selection.Find.ClearFormatting
                        Selection.Find.Replacement.ClearFormatting
                        Selection.Find.Replacement.Font.Color = wdColorRed
                        With Selection.Find
                            .Text = " ם"
                            .Replacement.Text = "^&"
                            .Forward = True
                            .Wrap = wdFindContinue
                            .Format = True
                            .MatchCase = False
                            .MatchWholeWord = False
                            .MatchKashida = False
                            .MatchDiacritics = False
                            .MatchAlefHamza = False
                            .MatchControl = False
                            .MatchWildcards = False
                            .MatchSoundsLike = False
                            .MatchAllWordForms = False
                        End With
                        Selection.Find.Execute Replace:=wdReplaceAll
                        With Selection.Find
                            .Text = " ן"
                            .Replacement.Text = "^&"
                            .Forward = True
                            .Wrap = wdFindContinue
                            .Format = True
                            .MatchCase = False
                            .MatchWholeWord = False
                            .MatchKashida = False
                            .MatchDiacritics = False
                            .MatchAlefHamza = False
                            .MatchControl = False
                            .MatchWildcards = False
                            .MatchSoundsLike = False
                            .MatchAllWordForms = False
                        End With
                        Selection.Find.Execute Replace:=wdReplaceAll
                        With Selection.Find
                            .Text = " ץ"
                            .Replacement.Text = "^&"
                            .Forward = True
                            .Wrap = wdFindContinue
                            .Format = True
                            .MatchCase = False
                            .MatchWholeWord = False
                            .MatchKashida = False
                            .MatchDiacritics = False
                            .MatchAlefHamza = False
                            .MatchControl = False
                            .MatchWildcards = False
                            .MatchSoundsLike = False
                            .MatchAllWordForms = False
                        End With
                        Selection.Find.Execute Replace:=wdReplaceAll
                        With Selection.Find
                            .Text = " ף"
                            .Replacement.Text = "^&"
                            .Forward = True
                            .Wrap = wdFindContinue
                            .Format = True
                            .MatchCase = False
                            .MatchWholeWord = False
                            .MatchKashida = False
                            .MatchDiacritics = False
                            .MatchAlefHamza = False
                            .MatchControl = False
                            .MatchWildcards = False
                            .MatchSoundsLike = False
                            .MatchAllWordForms = False
                        End With
                        Selection.Find.Execute Replace:=wdReplaceAll
                        With Selection.Find
                            .Text = " ך"
                            .Replacement.Text = "^&"
                            .Forward = True
                            .Wrap = wdFindContinue
                            .Format = True
                            .MatchCase = False
                            .MatchWholeWord = False
                            .MatchKashida = False
                            .MatchDiacritics = False
                            .MatchAlefHamza = False
                            .MatchControl = False
                            .MatchWildcards = False
                            .MatchSoundsLike = False
                            .MatchAllWordForms = False
                        End With
                        Selection.Find.ClearFormatting
                        Selection.Find.Replacement.ClearFormatting
                        Selection.Find.Replacement.Font.Color = wdColorRed
                        With Selection.Find
                        With Selection.Find
                            .Text = "ם[א-ת]"
                            .Replacement.Text = "^&"
                            .Forward = True
                            .Wrap = wdFindContinue
                            .Format = True
                            .MatchCase = False
                            .MatchWholeWord = False
                            .MatchKashida = False
                            .MatchDiacritics = False
                            .MatchAlefHamza = False
                            .MatchControl = False
                            .MatchAllWordForms = False
                            .MatchSoundsLike = False
                            .MatchWildcards = True
                        End With
                        Selection.Find.Execute Replace:=wdReplaceAll
                        With Selection.Find
                            .Text = "ן[א-ת]"
                            .Replacement.Text = "^&"
                            .Forward = True
                            .Wrap = wdFindContinue
                            .Format = True
                            .MatchCase = False
                            .MatchWholeWord = False
                            .MatchKashida = False
                            .MatchDiacritics = False
                            .MatchAlefHamza = False
                            .MatchControl = False
                            .MatchAllWordForms = False
                            .MatchSoundsLike = False
                            .MatchWildcards = True
                        End With
                        Selection.Find.Execute Replace:=wdReplaceAll
                        With Selection.Find
                            .Text = "ץ[א-ת]"
                            .Replacement.Text = "^&"
                            .Forward = True
                            .Wrap = wdFindContinue
                            .Format = True
                            .MatchCase = False
                            .MatchWholeWord = False
                            .MatchKashida = False
                            .MatchDiacritics = False
                            .MatchAlefHamza = False
                            .MatchControl = False
                            .MatchAllWordForms = False
                            .MatchSoundsLike = False
                            .MatchWildcards = True
                        End With
                        Selection.Find.Execute Replace:=wdReplaceAll
                        With Selection.Find
                            .Text = "ף[א-ת]"
                            .Replacement.Text = "^&"
                            .Forward = True
                            .Wrap = wdFindContinue
                            .Format = True
                            .MatchCase = False
                            .MatchWholeWord = False
                            .MatchKashida = False
                            .MatchDiacritics = False
                            .MatchAlefHamza = False
                            .MatchControl = False
                            .MatchAllWordForms = False
                            .MatchSoundsLike = False
                            .MatchWildcards = True
                        End With
                        Selection.Find.Execute Replace:=wdReplaceAll
                        With Selection.Find
                            .Text = "ך[א-ת]"
                            .Replacement.Text = "^&"
                            .Forward = True
                            .Wrap = wdFindContinue
                            .Format = True
                            .MatchCase = False
                            .MatchWholeWord = False
                            .MatchKashida = False
                            .MatchDiacritics = False
                            .MatchAlefHamza = False
                            .MatchControl = False
                            .MatchAllWordForms = False
                            .MatchSoundsLike = False
                            .MatchWildcards = True
                        End With
                        Selection.Find.Execute Replace:=wdReplaceAll
                        Selection.Find.ClearFormatting
                        Selection.Find.Replacement.ClearFormatting
                        Selection.Find.Replacement.Font.Color = wdColorRed
                        With Selection.Find
                            .Text = " [א-ת] "
                            .Replacement.Text = "^&"
                            .Forward = True
                            .Wrap = wdFindContinue
                            .Format = True
                            .MatchCase = False
                            .MatchWholeWord = False
                            .MatchKashida = False
                            .MatchDiacritics = False
                            .MatchAlefHamza = False
                            .MatchControl = False
                            .MatchAllWordForms = False
                            .MatchSoundsLike = False
                            .MatchWildcards = True
                        End With
                        Selection.Find.Execute Replace:=wdReplaceAll
                        With Selection.Find
                            .Text = " [א-ת]^13"
                            .Replacement.Text = "^&"
                            .Forward = True
                            .Wrap = wdFindContinue
                            .Format = True
                            .MatchCase = False
                            .MatchWholeWord = False
                            .MatchKashida = False
                            .MatchDiacritics = False
                            .MatchAlefHamza = False
                            .MatchControl = False
                            .MatchAllWordForms = False
                            .MatchSoundsLike = False
                            .MatchWildcards = True
                        End With
                        Selection.Find.Execute Replace:=wdReplaceAll
                        Selection.Find.ClearFormatting
                        Selection.Find.Replacement.ClearFormatting
                        Selection.Find.Replacement.Font.Color = wdColorAutomatic
                        With Selection.Find
                            .Text = "ן [א-ת] "
                            .Replacement.Text = "^&"
                            .Forward = True
                            .Wrap = wdFindContinue
                            .Format = True
                            .MatchCase = False
                            .MatchWholeWord = False
                            .MatchKashida = False
                            .MatchDiacritics = False
                            .MatchAlefHamza = False
                            .MatchControl = False
                            .MatchAllWordForms = False
                            .MatchSoundsLike = False
                            .MatchWildcards = True
                        End With
                        Selection.Find.Execute Replace:=wdReplaceAll
                        With Selection.Find
                            .Text = "ק [א-ת] "
                            .Replacement.Text = "^&"
                            .Forward = True
                            .Wrap = wdFindContinue
                            .Format = True
                            .MatchCase = False
                            .MatchWholeWord = False
                            .MatchKashida = False
                            .MatchDiacritics = False
                            .MatchAlefHamza = False
                            .MatchControl = False
                            .MatchAllWordForms = False
                            .MatchSoundsLike = False
                            .MatchWildcards = True
                        End With
                        Selection.Find.Execute Replace:=wdReplaceAll
                        With Selection.Find
                            .Text = "ה [א-ת] "
                            .Replacement.Text = "^&"
                            .Forward = True
                            .Wrap = wdFindContinue
                            .Format = True
                            .MatchCase = False
                            .MatchWholeWord = False
                            .MatchKashida = False
                            .MatchDiacritics = False
                            .MatchAlefHamza = False
                            .MatchControl = False
                            .MatchAllWordForms = False
                            .MatchSoundsLike = False
                            .MatchWildcards = True
                        End With
                        Selection.Find.Execute Replace:=wdReplaceAll
                        With Selection.Find
                            .Text = "ף [א-ת] "
                            .Replacement.Text = "^&"
                            .Forward = True
                            .Wrap = wdFindContinue
                            .Format = True
                            .MatchCase = False
                            .MatchWholeWord = False
                            .MatchKashida = False
                            .MatchDiacritics = False
                            .MatchAlefHamza = False
                            .MatchControl = False
                            .MatchAllWordForms = False
                            .MatchSoundsLike = False
                            .MatchWildcards = True
                        End With
                        Selection.Find.Execute Replace:=wdReplaceAll
                        With Selection.Find
                            .Text = "ת [א-ת] "
                            .Replacement.Text = "^&"
                            .Forward = True
                            .Wrap = wdFindContinue
                            .Format = True
                            .MatchCase = False
                            .MatchWholeWord = False
                            .MatchKashida = False
                            .MatchDiacritics = False
                            .MatchAlefHamza = False
                            .MatchControl = False
                            .MatchAllWordForms = False
                            .MatchSoundsLike = False
                            .MatchWildcards = True
                        End With
                        Selection.Find.Execute Replace:=wdReplaceAll
                        With Selection.Find
                            .Text = "ש [א-ת] "
                            .Replacement.Text = "^&"
                            .Forward = True
                            .Wrap = wdFindContinue
                            .Format = True
                            .MatchCase = False
                            .MatchWholeWord = False
                            .MatchKashida = False
                            .MatchDiacritics = False
                            .MatchAlefHamza = False
                            .MatchControl = False
                            .MatchAllWordForms = False
                            .MatchSoundsLike = False
                            .MatchWildcards = True
                        End With
                        Selection.Find.Execute Replace:=wdReplaceAll
                        With Selection.Find
                            .Text = "ג [א-ת] "
                            .Replacement.Text = "^&"
                            .Forward = True
                            .Wrap = wdFindContinue
                            .Format = True
                            .MatchCase = False
                            .MatchWholeWord = False
                            .MatchKashida = False
                            .MatchDiacritics = False
                            .MatchAlefHamza = False
                            .MatchControl = False
                            .MatchAllWordForms = False
                            .MatchSoundsLike = False
                            .MatchWildcards = True
                        End With
                        Selection.Find.Execute Replace:=wdReplaceAll
                        With Selection.Find
                            .Text = "' [א-ת] "
                            .Replacement.Text = "^&"
                            .Forward = True
                            .Wrap = wdFindContinue
                            .Format = True
                            .MatchCase = False
                            .MatchWholeWord = False
                            .MatchKashida = False
                            .MatchDiacritics = False
                            .MatchAlefHamza = False
                            .MatchControl = False
                            .MatchAllWordForms = False
                            .MatchSoundsLike = False
                            .MatchWildcards = True
                        End With
                        Selection.Find.Execute Replace:=wdReplaceAll
                        With Selection.Find
                            .Text = "ן [א-ת]^13"
                            .Replacement.Text = "^&"
                            .Forward = True
                            .Wrap = wdFindContinue
                            .Format = True
                            .MatchCase = False
                            .MatchWholeWord = False
                            .MatchKashida = False
                            .MatchDiacritics = False
                            .MatchAlefHamza = False
                            .MatchControl = False
                            .MatchAllWordForms = False
                            .MatchSoundsLike = False
                            .MatchWildcards = True
                        End With
                        Selection.Find.Execute Replace:=wdReplaceAll
                        With Selection.Find
                            .Text = "ק [א-ת]^13"
                            .Replacement.Text = "^&"
                            .Forward = True
                            .Wrap = wdFindContinue
                            .Format = True
                            .MatchCase = False
                            .MatchWholeWord = False
                            .MatchKashida = False
                            .MatchDiacritics = False
                            .MatchAlefHamza = False
                            .MatchControl = False
                            .MatchAllWordForms = False
                            .MatchSoundsLike = False
                            .MatchWildcards = True
                        End With
                        Selection.Find.Execute Replace:=wdReplaceAll
                        With Selection.Find
                            .Text = "ה [א-ת]^13"
                            .Replacement.Text = "^&"
                            .Forward = True
                            .Wrap = wdFindContinue
                            .Format = True
                            .MatchCase = False
                            .MatchWholeWord = False
                            .MatchKashida = False
                            .MatchDiacritics = False
                            .MatchAlefHamza = False
                            .MatchControl = False
                            .MatchAllWordForms = False
                            .MatchSoundsLike = False
                            .MatchWildcards = True
                        End With
                        Selection.Find.Execute Replace:=wdReplaceAll
                        With Selection.Find
                            .Text = "ף [א-ת]^13"
                            .Replacement.Text = "^&"
                            .Forward = True
                            .Wrap = wdFindContinue
                            .Format = True
                            .MatchCase = False
                            .MatchWholeWord = False
                            .MatchKashida = False
                            .MatchDiacritics = False
                            .MatchAlefHamza = False
                            .MatchControl = False
                            .MatchAllWordForms = False
                            .MatchSoundsLike = False
                            .MatchWildcards = True
                        End With
                        Selection.Find.Execute Replace:=wdReplaceAll
                        With Selection.Find
                            .Text = "ת [א-ת]^13"
                            .Replacement.Text = "^&"
                            .Forward = True
                            .Wrap = wdFindContinue
                            .Format = True
                            .MatchCase = False
                            .MatchWholeWord = False
                            .MatchKashida = False
                            .MatchDiacritics = False
                            .MatchAlefHamza = False
                            .MatchControl = False
                            .MatchAllWordForms = False
                            .MatchSoundsLike = False
                            .MatchWildcards = True
                        End With
                        Selection.Find.Execute Replace:=wdReplaceAll
                        With Selection.Find
                            .Text = "ש [א-ת]^13"
                            .Replacement.Text = "^&"
                            .Forward = True
                            .Wrap = wdFindContinue
                            .Format = True
                            .MatchCase = False
                            .MatchWholeWord = False
                            .MatchKashida = False
                            .MatchDiacritics = False
                            .MatchAlefHamza = False
                            .MatchControl = False
                            .MatchAllWordForms = False
                            .MatchSoundsLike = False
                            .MatchWildcards = True
                        End With
                        Selection.Find.Execute Replace:=wdReplaceAll
                        With Selection.Find
                            .Text = "ג [א-ת]^13"
                            .Replacement.Text = "^&"
                            .Forward = True
                            .Wrap = wdFindContinue
                            .Format = True
                            .MatchCase = False
                            .MatchWholeWord = False
                            .MatchKashida = False
                            .MatchDiacritics = False
                            .MatchAlefHamza = False
                            .MatchControl = False
                            .MatchAllWordForms = False
                            .MatchSoundsLike = False
                            .MatchWildcards = True
                        End With
                        Selection.Find.Execute Replace:=wdReplaceAll
                        With Selection.Find
                            .Text = "' [א-ת]^13"
                            .Replacement.Text = "^&"
                            .Forward = True
                            .Wrap = wdFindContinue
                            .Format = True
                            .MatchCase = False
                            .MatchWholeWord = False
                            .MatchKashida = False
                            .MatchDiacritics = False
                            .MatchAlefHamza = False
                            .MatchControl = False
                            .MatchAllWordForms = False
                            .MatchSoundsLike = False
                            .MatchWildcards = True
                        End With
                        Selection.Find.ClearFormatting
                        Selection.Find.Replacement.ClearFormatting
                        With Selection.Find
                            .Text = ", ("
                            .Replacement.Text = " ("
                            .Forward = True
                            .Wrap = wdFindContinue
                            .Format = False
                            .MatchCase = False
                            .MatchWholeWord = False
                            .MatchKashida = False
                            .MatchDiacritics = False
                            .MatchAlefHamza = False
                            .MatchControl = False
                            .MatchWildcards = False
                            .MatchSoundsLike = False
                            .MatchAllWordForms = False
                        End With
                        Selection.Find.Execute Replace:=wdReplaceAll
                        With Selection.Find
                            .Text = ". ["
                            .Replacement.Text = " ["
                            .Forward = True
                            .Wrap = wdFindContinue
                            .Format = False
                            .MatchCase = False
                            .MatchWholeWord = False
                            .MatchKashida = False
                            .MatchDiacritics = False
                            .MatchAlefHamza = False
                            .MatchControl = False
                            .MatchWildcards = False
                            .MatchSoundsLike = False
                            .MatchAllWordForms = False
                        End With
                        Selection.Find.Execute Replace:=wdReplaceAll
                        With Selection.Find
                            .Text = ", ["
                            .Replacement.Text = " ["
                            .Forward = True
                            .Wrap = wdFindContinue
                            .Format = False
                            .MatchCase = False
                            .MatchWholeWord = False
                            .MatchKashida = False
                            .MatchDiacritics = False
                            .MatchAlefHamza = False
                            .MatchControl = False
                            .MatchWildcards = False
                            .MatchSoundsLike = False
                            .MatchAllWordForms = False
                        End With
                        Selection.Find.Execute Replace:=wdReplaceAll
                        With Selection.Find
                            .Text = "[ "
                            .Replacement.Text = "["
                            .Forward = True
                            .Wrap = wdFindContinue
                            .Format = False
                            .MatchCase = False
                            .MatchWholeWord = False
                            .MatchKashida = False
                            .MatchDiacritics = False
                            .MatchAlefHamza = False
                            .MatchControl = False
                            .MatchWildcards = False
                            .MatchSoundsLike = False
                            .MatchAllWordForms = False
                        End With
                        Selection.Find.Execute Replace:=wdReplaceAll
                        With Selection.Find
                            .Text = " ]"
                            .Replacement.Text = "]"
                            .Forward = True
                            .Wrap = wdFindContinue
                            .Format = False
                            .MatchCase = False
                            .MatchWholeWord = False
                            .MatchKashida = False
                            .MatchDiacritics = False
                            .MatchAlefHamza = False
                            .MatchControl = False
                            .MatchWildcards = False
                            .MatchSoundsLike = False
                            .MatchAllWordForms = False
                        End With
                        Selection.Find.Execute Replace:=wdReplaceAll
                        With Selection.Find
                            .Text = "( "
                            .Replacement.Text = "("
                            .Forward = True
                            .Wrap = wdFindContinue
                            .Format = False
                            .MatchCase = False
                            .MatchWholeWord = False
                            .MatchKashida = False
                            .MatchDiacritics = False
                            .MatchAlefHamza = False
                            .MatchControl = False
                            .MatchWildcards = False
                            .MatchSoundsLike = False
                            .MatchAllWordForms = False
                        End With
                        Selection.Find.Execute Replace:=wdReplaceAll
                        With Selection.Find
                            .Text = " )"
                            .Replacement.Text = ")"
                            .Forward = True
                            .Wrap = wdFindContinue
                            .Format = False
                            .MatchCase = False
                            .MatchWholeWord = False
                            .MatchKashida = False
                            .MatchDiacritics = False
                            .MatchAlefHamza = False
                            .MatchControl = False
                            .MatchWildcards = False
                            .MatchSoundsLike = False
                            .MatchAllWordForms = False
                        End With
                        Selection.Find.Execute Replace:=wdReplaceAll
                        Selection.Find.ClearFormatting
                        Selection.Find.Replacement.ClearFormatting
                        With Selection.Find
                            .Text = "(.)([! ^13]*>)"
                            .Replacement.Text = "\1 \2"
                            .Forward = True
                            .Wrap = wdFindContinue
                            .Format = False
                            .MatchCase = False
                            .MatchWholeWord = False
                            .MatchKashida = False
                            .MatchDiacritics = False
                            .MatchAlefHamza = False
                            .MatchControl = False
                            .MatchAllWordForms = False
                            .MatchSoundsLike = False
                            .MatchWildcards = True
                        End With
                        Selection.Find.Execute Replace:=wdReplaceAll
                        With Selection.Find
                            .Text = "(,)([! ^13]*>)"
                            .Replacement.Text = "\1 \2"
                            .Forward = True
                            .Wrap = wdFindContinue
                            .Format = False
                            .MatchCase = False
                            .MatchWholeWord = False
                            .MatchKashida = False
                            .MatchDiacritics = False
                            .MatchAlefHamza = False
                            .MatchControl = False
                            .MatchAllWordForms = False
                            .MatchSoundsLike = False
                            .MatchWildcards = True
                        End With
                        Selection.Find.Execute Replace:=wdReplaceAll
                        Selection.Find.ClearFormatting
                        Selection.Find.Replacement.ClearFormatting
                        With Selection.Find
                            .Text = "([! ^13'""])([(\[])"
                            .Replacement.Text = "\1 \2"
                            .Forward = True
                            .Wrap = wdFindContinue
                            .Format = False
                            .MatchCase = False
                            .MatchWholeWord = False
                            .MatchKashida = False
                            .MatchDiacritics = False
                            .MatchAlefHamza = False
                            .MatchControl = False
                            .MatchAllWordForms = False
                            .MatchSoundsLike = False
                            .MatchWildcards = True
                        End With
                        Selection.Find.Execute Replace:=wdReplaceAll
                        With Selection.Find
                            .Text = "([)\]])([! ^13.,'""\?\!])"
                            .Replacement.Text = "\1 \2"
                            .Forward = True
                            .Wrap = wdFindContinue
                            .Format = False
                            .MatchCase = False
                            .MatchWholeWord = False
                            .MatchKashida = False
                            .MatchDiacritics = False
                            .MatchAlefHamza = False
                            .MatchControl = False
                            .MatchAllWordForms = False
                            .MatchSoundsLike = False
                            .MatchWildcards = True
                        End With
                        Selection.Find.ClearFormatting
                        Selection.Find.Replacement.ClearFormatting
                        With Selection.Find
                            .Text = "^$. )"
                            .Replacement.Text = "^&@@"
                            .Forward = True
                            .Wrap = wdFindContinue
                            .Format = False
                            .MatchCase = False
                            .MatchWholeWord = False
                            .MatchKashida = False
                            .MatchDiacritics = False
                            .MatchAlefHamza = False
                            .MatchControl = False
                            .MatchWildcards = False
                            .MatchSoundsLike = False
                            .MatchAllWordForms = False
                        End With
                        Selection.Find.Execute Replace:=wdReplaceAll
                        Selection.Find.ClearFormatting
                        Selection.Find.Replacement.ClearFormatting
                        With Selection.Find
                            .Text = " )@@"
                            .Replacement.Text = ")"
                            .Forward = True
                            .Wrap = wdFindContinue
                            .Format = False
                            .MatchCase = False
                            .MatchWholeWord = False
                            .MatchKashida = False
                            .MatchDiacritics = False
                            .MatchAlefHamza = False
                            .MatchControl = False
                            .MatchWildcards = False
                            .MatchSoundsLike = False
                            .MatchAllWordForms = False
                        End With
                        Selection.Find.Execute Replace:=wdReplaceAll
                        With Selection.Find
                            .Text = " ) "
                            .Replacement.Text = " ("
                            .Forward = True
                            .Wrap = wdFindContinue
                            .Format = False
                            .MatchCase = False
                            .MatchWholeWord = False
                            .MatchKashida = False
                            .MatchDiacritics = False
                            .MatchAlefHamza = False
                            .MatchControl = False
                            .MatchWildcards = False
                            .MatchSoundsLike = False
                            .MatchAllWordForms = False
                        End With
                        Selection.Find.Execute Replace:=wdReplaceAll
                        With Selection.Find
                            .Text = " ( "
                            .Replacement.Text = ") "
                            .Forward = True
                            .Wrap = wdFindContinue
                            .Format = False
                            .MatchCase = False
                            .MatchWholeWord = False
                            .MatchKashida = False
                            .MatchDiacritics = False
                            .MatchAlefHamza = False
                            .MatchControl = False
                            .MatchWildcards = False
                            .MatchSoundsLike = False
                            .MatchAllWordForms = False
                        End With
                        Selection.Find.ClearFormatting
                        Selection.Find.Replacement.ClearFormatting
                        With Selection.Find
                            .Text = """""^$"
                            .Replacement.Text = "@@^&"
                            .Forward = True
                            .Wrap = wdFindContinue
                            .Format = False
                            .MatchCase = False
                            .MatchWholeWord = False
                            .MatchKashida = False
                            .MatchDiacritics = False
                            .MatchAlefHamza = False
                            .MatchControl = False
                            .MatchWildcards = False
                            .MatchSoundsLike = False
                            .MatchAllWordForms = False
                        End With
                        Selection.Find.Execute Replace:=wdReplaceAll
                        With Selection.Find
                            .Text = "@@"""""
                            .Replacement.Text = """"
                            .Forward = True
                            .Wrap = wdFindContinue
                            .Format = False
                            .MatchCase = False
                            .MatchWholeWord = False
                            .MatchKashida = False
                            .MatchDiacritics = False
                            .MatchAlefHamza = False
                            .MatchControl = False
                            .MatchWildcards = False
                            .MatchSoundsLike = False
                            .MatchAllWordForms = False
                        End With
                        Selection.Find.ClearFormatting
                        Selection.Find.Replacement.ClearFormatting
                        With Selection.Find
                            .Text = "' ."
                            .Replacement.Text = "'."
                            .Forward = True
                            .Wrap = wdFindContinue
                            .Format = False
                            .MatchCase = False
                            .MatchWholeWord = False
                            .MatchKashida = False
                            .MatchDiacritics = False
                            .MatchAlefHamza = False
                            .MatchControl = False
                            .MatchWildcards = False
                            .MatchSoundsLike = False
                            .MatchAllWordForms = False
                        End With
                        Selection.Find.Execute Replace:=wdReplaceAll
                        Selection.Find.ClearFormatting
                        Selection.Find.Replacement.ClearFormatting
                        With Selection.Find
                            .Text = "' ,"
                            .Replacement.Text = "',"
                            .Forward = True
                            .Wrap = wdFindContinue
                            .Format = False
                            .MatchCase = False
                            .MatchWholeWord = False
                            .MatchKashida = False
                            .MatchDiacritics = False
                            .MatchAlefHamza = False
                            .MatchControl = False
                            .MatchWildcards = False
                            .MatchSoundsLike = False
                            .MatchAllWordForms = False
                        End With
                        Selection.Find.ClearFormatting
                        Selection.Find.Replacement.ClearFormatting
                        With Selection.Find
                            .Text = "' ]"
                            .Replacement.Text = "']"
                            .Forward = True
                            .Wrap = wdFindContinue
                            .Format = False
                            .MatchCase = False
                            .MatchWholeWord = False
                            .MatchKashida = False
                            .MatchDiacritics = False
                            .MatchAlefHamza = False
                            .MatchControl = False
                            .MatchWildcards = False
                            .MatchSoundsLike = False
                            .MatchAllWordForms = False
                        End With
                        Selection.Find.Execute Replace:=wdReplaceAll
                        Selection.Find.ClearFormatting
                        Selection.Find.Replacement.ClearFormatting
                        With Selection.Find
                            .Text = "  "
                            .Replacement.Text = " "
                            .Forward = True
                            .Wrap = wdFindContinue
                            .Format = False
                            .MatchCase = False
                            .MatchWholeWord = False
                            .MatchKashida = False
                            .MatchDiacritics = False
                            .MatchAlefHamza = False
                            .MatchControl = False
                            .MatchWildcards = False
                            .MatchSoundsLike = False
                            .MatchAllWordForms = False
                        End With
                        Selection.Find.Execute Replace:=wdReplaceAll
                        Selection.Find.ClearFormatting
                        Selection.Find.Replacement.ClearFormatting
                        With Selection.Find
                            .Text = "^p^p"
                            .Replacement.Text = "^p"
                            .Forward = True
                            .Wrap = wdFindContinue
                            .Format = False
                            .MatchCase = False
                            .MatchWholeWord = False
                            .MatchKashida = False
                            .MatchDiacritics = False
                            .MatchAlefHamza = False
                            .MatchControl = False
                            .MatchWildcards = False
                            .MatchSoundsLike = False
                            .MatchAllWordForms = False
                        End With
                        Selection.Find.Execute Replace:=wdReplaceAll
                        With Selection.Find
                            .Text = " ^p"
                            .Replacement.Text = "^p"
                            .Forward = True
                            .Wrap = wdFindContinue
                            .Format = False
                            .MatchCase = False
                            .MatchWholeWord = False
                            .MatchKashida = False
                            .MatchDiacritics = False
                            .MatchAlefHamza = False
                            .MatchControl = False
                            .MatchWildcards = False
                            .MatchSoundsLike = False
                            .MatchAllWordForms = False
                        End With
                        Selection.Find.ClearFormatting
                        Selection.Find.Replacement.ClearFormatting
                        Selection.Find.Replacement.Font.Color = wdColorRed
                        With Selection.Find
                            .Text = """^$'"
                            .Replacement.Text = "^&"
                            .Forward = True
                            .Wrap = wdFindContinue
                            .Format = True
                            .MatchCase = False
                            .MatchWholeWord = False
                            .MatchKashida = False
                            .MatchDiacritics = False
                            .MatchAlefHamza = False
                            .MatchControl = False
                            .MatchWildcards = False
                            .MatchSoundsLike = False
                            .MatchAllWordForms = False
                        End With
                        Selection.Find.Execute Replace:=wdReplaceAll
                        Selection.Find.ClearFormatting
                        Selection.Find.Replacement.ClearFormatting
                        With Selection.Find
                            .Text = "^l ["
                            .Replacement.Text = "^l["
                            .Forward = True
                            .Wrap = wdFindContinue
                            .Format = False
                            .MatchCase = False
                            .MatchWholeWord = False
                            .MatchKashida = False
                            .MatchDiacritics = False
                            .MatchAlefHamza = False
                            .MatchControl = False
                            .MatchWildcards = False
                            .MatchSoundsLike = False
                            .MatchAllWordForms = False
                        End With
                        Selection.Find.Execute Replace:=wdReplaceAll
                        With Selection.Find
                            .Text = " ^l ["
                            .Replacement.Text = "^l["
                            .Forward = True
                            .Wrap = wdFindContinue
                            .Format = False
                            .MatchCase = False
                            .MatchWholeWord = False
                            .MatchKashida = False
                            .MatchDiacritics = False
                            .MatchAlefHamza = False
                            .MatchControl = False
                            .MatchWildcards = False
                            .MatchSoundsLike = False
                            .MatchAllWordForms = False
                        End With
                        Selection.Find.Execute Replace:=wdReplaceAll
                        End With
                        Selection.Find.Execute Replace:=wdReplaceAll
                    End Sub
                    

                    ביקשתי מג'מיני - ייעול של הקוד, והנה הוא לפניכם - בתוספת חלונית מידע בסוף הריצה על כמות התיקונים שהמאקרו ביצע.
                    אשמח להערות והארות עליו, מה ניתן להוסיף ולשפר, ומה לא עובד בו טוב, לא עברתי על הקוד שנוצר בעיון, רק בדקתי שהוא רץ טוב ושהוא באמת מתקן.

                    Sub תיקון_סימנים_כפולים_ ועוד()
                        ' עצירת רענון המסך למהירות ריצה מקסימלית
                        Application.ScreenUpdating = False
                        
                        Dim cntPunctuation As Long
                        Dim cntSpaces As Long
                        Dim cntRed As Long
                        Dim cntClean As Long
                        Dim i As Long
                        Dim spacesChanged As Long
                        
                        Dim arrFind As Variant, arrRep As Variant
                        
                        ' =======================================================
                        ' --- קטגוריה 1: סימני פיסוק וכפילויות (סדר פעולות קריטי) ---
                        ' =======================================================
                        
                        ' 1. נקודה כפול 4 ומעלה -> החלף בנקודה בודדת
                        cntPunctuation = cntPunctuation + FastReplaceAndCount(".{4,}", ".", True)
                        
                        ' 2. הגנה על 3 נקודות (...) כדי שלא ייהרסו - החלפה זמנית למחרוזת ייחודית
                        cntPunctuation = cntPunctuation + FastReplaceAndCount("...", "|||", False)
                        
                        ' 3. נקודה כפולה (..) -> החלף בנקודה בודדת
                        cntPunctuation = cntPunctuation + FastReplaceAndCount("..", ".", False)
                        
                        ' 4. החזרת ה-3 נקודות (...) למקומן המקורי
                        cntPunctuation = cntPunctuation + FastReplaceAndCount("|||", "...", False)
                        
                        ' 5. שלושה ייי -> החלף לשניים
                        cntPunctuation = cntPunctuation + FastReplaceAndCount("ייי", "יי", False)
                        
                        ' 6. שאר הכפילויות (פסיק כפול, גרש כפול, מרכאות כפולות כפולות, ואותיות סופיות כפולות)
                        arrFind = Array(",,", "''", "םם", "ןן", "ץץ", "ףף", "ךך", """""")
                        arrRep = Array(",", "'", "ם", "ן", "ץ", "ף", "ך", """")
                        For i = LBound(arrFind) To UBound(arrFind)
                            cntPunctuation = cntPunctuation + FastReplaceAndCount(CStr(arrFind(i)), CStr(arrRep(i)), False)
                        Next i
                        
                        ' =======================================================
                        ' --- קטגוריה 2: תיקוני רווחים, סוגריים ומעברים ---
                        ' =======================================================
                        
                        ' 1. רווח כפול -> החלף ברווח בודד (בלולאה עד לניקוי מלא של רווחים משולשים ומעלה)
                        Do
                            spacesChanged = FastReplaceAndCount("  ", " ", False)
                            cntSpaces = cntSpaces + spacesChanged
                        Loop While spacesChanged > 0
                        
                        ' 2. אנטר כפול -> החלף באנטר בודד
                        cntSpaces = cntSpaces + FastReplaceAndCount("^p^p", "^p", False)
                        
                        ' 3. רווח ואז מעבר שורה או מעבר פסקה -> מחק את הרווח
                        cntSpaces = cntSpaces + FastReplaceAndCount(" ^l", "^l", False)
                        cntSpaces = cntSpaces + FastReplaceAndCount(" ^p", "^p", False)
                        cntSpaces = cntSpaces + FastReplaceAndCount("^p ", "^p", False)
                        
                        ' 4. מילה רווח ואז נקודה/פסיק/גרש -> החלף בסימן ואז רווח
                        cntSpaces = cntSpaces + FastReplaceAndCount(" .", ". ", False)
                        cntSpaces = cntSpaces + FastReplaceAndCount(" ,", ", ", False)
                        cntSpaces = cntSpaces + FastReplaceAndCount(" '", "' ", False)
                        
                        ' 5. רווחים סביב סוגריים (פותח וסוגר)
                        cntSpaces = cntSpaces + FastReplaceAndCount("( ", "(", False)
                        cntSpaces = cntSpaces + FastReplaceAndCount("[ ", "[", False)
                        cntSpaces = cntSpaces + FastReplaceAndCount(" )", ")", False)
                        cntSpaces = cntSpaces + FastReplaceAndCount(" ]", "]", False)
                        
                        ' 6. סוגר סוגריים שאחריו רווח ופסיק או נקודה -> מחק את הרווח
                        cntSpaces = cntSpaces + FastReplaceAndCount(") .", ").", False)
                        cntSpaces = cntSpaces + FastReplaceAndCount(") ,", "),", False)
                        cntSpaces = cntSpaces + FastReplaceAndCount("] .", "].", False)
                        cntSpaces = cntSpaces + FastReplaceAndCount("] ,", "],", False)
                        
                        ' 7. נקודה/פסיק ואחריהם סוגריים -> העברה אל אחרי הסוגריים (בתנאי שאין שם כבר)
                        cntSpaces = cntSpaces + FastReplaceAndCount("\.([\(\)\[\]])\.", "\1.", True)
                        cntSpaces = cntSpaces + FastReplaceAndCount("\.([\(\)\[\]])", "\1.", True)
                        cntSpaces = cntSpaces + FastReplaceAndCount("\,([\(\)\[\]])\,", "\1,", True)
                        cntSpaces = cntSpaces + FastReplaceAndCount("\,([\(\)\[\]])", "\1,", True)
                        
                        ' 8. נקודה או פסיק ואז תו שאינו רווח (אות עברית) -> הוספת רווח אחרי הסימן
                        cntSpaces = cntSpaces + FastReplaceAndCount("(\.)([א-ת])", "\1 \2", True)
                        cntSpaces = cntSpaces + FastReplaceAndCount("(\,)([א-ת])", "\1 \2", True)
                        
                        ' 9. גרש בסוף מילה כאשר יש כבר מרכאות בתוך המילה -> מחק את הגרש המיותר בסוף
                        cntSpaces = cntSpaces + FastReplaceAndCount("([א-ת])""([א-ת]+)'", "\1""\2", True)
                        
                        ' 10. רווח ואז אות סופית -> אות סופית ואז רווח
                        arrFind = Array(" ם", " ן", " ץ", " ף", " ך")
                        arrRep = Array("ם ", "ן ", "ץ ", "ף ", "ך ")
                        For i = LBound(arrFind) To UBound(arrFind)
                            cntSpaces = cntSpaces + FastReplaceAndCount(CStr(arrFind(i)), CStr(arrRep(i)), False)
                        Next i
                        
                        ' =======================================================
                        ' --- קטגוריה 3: צביעה באדום לסימון שגיאות ---
                        ' =======================================================
                        
                        ' 1. אות סופית ואז אות רגילה מ-א' עד ת' (ללא רווח ביניהן)
                        cntRed = cntRed + FastReplaceAndCount("[םןץףך][א-ת]", "^&", True, wdColorRed)
                        
                        ' 2. רווח - אות בודדת - רווח (או מעבר פסקה)
                        cntRed = cntRed + FastReplaceAndCount(" [א-ת] ", "^&", True, wdColorRed)
                        cntRed = cntRed + FastReplaceAndCount(" [א-ת]^13", "^&", True, wdColorRed)
                        
                        ' 3. סוף מילה ואחריה מרכאות -> צביעת המרכאות בלבד באדום (מבלי לגעת בראשי תיבות!)
                        Selection.HomeKey Unit:=wdStory
                        With Selection.Find
                            .ClearFormatting
                            .Text = "[א-ת]"""
                            .MatchWildcards = True
                            .Wrap = wdFindStop
                            
                            Dim lastPosQuote As Long
                            lastPosQuote = -1
                            
                            Do While .Execute
                                If Selection.Start = lastPosQuote Then Exit Do
                                lastPosQuote = Selection.Start
                                
                                Dim isAcronym As Boolean
                                isAcronym = False
                                
                                ' בודקים את התו שמופיע מיד אחרי המרכאות
                                If Selection.End < ActiveDocument.Content.End Then
                                    Dim nextChar As String
                                    nextChar = ActiveDocument.Range(Selection.End, Selection.End + 1).Text
                                    ' אם התו הבא הוא אות עברית, סימן שמדובר בראשי תיבות
                                    If nextChar Like "[א-ת]" Then
                                        isAcronym = True
                                    End If
                                End If
                                
                                ' צובעים רק אם לא מדובר בראשי תיבות
                                If Not isAcronym Then
                                    ActiveDocument.Range(Selection.End - 1, Selection.End).Font.Color = wdColorRed
                                    cntRed = cntRed + 1
                                End If
                                
                                Selection.Collapse wdCollapseEnd
                            Loop
                        End With
                        
                        ' =======================================================
                        ' --- קטגוריה 4: ניקוי הדגשות אדומות מותרות (חריגים) ---
                        ' =======================================================
                        ' החזרת צבע אוטומטי לאותיות בודדות שמגיעות אחרי האותיות המותרות בדרישה
                        arrFind = Array("ן [א-ת] ", "ק [א-ת] ", "ה [א-ת] ", "ף [א-ת] ", "ת [א-ת] ", "ש [א-ת] ", "ג [א-ת] ", "' [א-ת] ", "ם [א-ת] ", _
                                        "ן [א-ת]^13", "ק [א-ת]^13", "ה [א-ת]^13", "ף [א-ת]^13", "ת [א-ת]^13", "ש [א-ת]^13", "ג [א-ת]^13", "' [א-ת]^13", "ם [א-ת]^13")
                        For i = LBound(arrFind) To UBound(arrFind)
                            cntClean = cntClean + FastReplaceAndCount(CStr(arrFind(i)), "^&", True, wdColorAutomatic)
                        Next i
                        
                        ' =======================================================
                        ' --- קטגוריה 5: תיקון באג סוגריים הפוכים ב-Word RTL ---
                        ' =======================================================
                        Selection.HomeKey Unit:=wdStory
                        With Selection.Find
                            .ClearFormatting
                            .Text = "[\(\)\[\]]"
                            .MatchWildcards = True
                            .Wrap = wdFindStop
                            
                            Dim lastPosBracket As Long
                            lastPosBracket = -1
                            
                            Do While .Execute
                                If Selection.Start = lastPosBracket Then Exit Do
                                lastPosBracket = Selection.Start
                                
                                Dim charFont As String
                                charFont = ""
                                
                                If Selection.End < ActiveDocument.Content.End Then
                                    charFont = ActiveDocument.Range(Selection.End, Selection.End + 1).Font.NameBi
                                End If
                                If charFont = "" And Selection.Start > 0 Then
                                    charFont = ActiveDocument.Range(Selection.Start - 1, Selection.Start).Font.NameBi
                                End If
                                
                                If charFont <> "" Then
                                    Selection.Font.Name = charFont
                                    Selection.Font.NameBi = charFont
                                    Selection.Font.NameAscii = charFont
                                    Selection.Font.NameOther = charFont
                                End If
                                Selection.Collapse wdCollapseEnd
                            Loop
                        End With
                        
                        ' הפעלת רענון המסך בחזרה בסיום הריצה
                        Application.ScreenUpdating = True
                        
                        ' =======================================================
                        ' --- 6. הפקת הודעת דיווח וסיכום ---
                        ' =======================================================
                        Dim msg As String
                        Dim totalChanges As Long
                        totalChanges = cntPunctuation + cntSpaces + cntRed + cntClean
                        
                        msg = "הפעולה הושלמה בהצלחה!" & vbCrLf & vbCrLf & _
                              "--- פירוט השינויים שבוצעו במסמך ---" & vbCrLf & _
                              "* סימני פיסוק וכפילויות שניקו: " & cntPunctuation & vbCrLf & _
                              "* תיקוני רווחים, סוגריים ומעברים: " & cntSpaces & vbCrLf & _
                              "* שגיאות ואותיות סופיות שנצבעו באדום: " & cntRed & vbCrLf & _
                              "* הדגשות שבוטלו (הוחזרו לצבע רגיל): " & cntClean & vbCrLf & _
                              "----------------------------------------" & vbCrLf & _
                              "סך כל השינויים שבוצעו במסמך: " & totalChanges
                              
                        MsgBox msg, vbInformation + vbMsgBoxRight + vbMsgBoxRtlReading, "דו""ח סיום תיקון מסמך"
                    End Sub
                     
                    ' פונקציית עזר פנימית קבועה ואמינה לספירה ולהחלפה מהירה במסמך (כולל הגנת מיקום)
                    Private Function FastReplaceAndCount(ByVal findText As String, ByVal replaceText As String, ByVal isWildcard As Boolean, Optional ByVal repColor As Long = -1) As Long
                        Dim c As Long
                        c = 0
                        Selection.HomeKey Unit:=wdStory
                        
                        Dim lastPos As Long
                        lastPos = -1
                        
                        ' שלב א: ספירת מופעים מוגנת
                        With Selection.Find
                            .ClearFormatting
                            .Text = findText
                            .MatchWildcards = isWildcard
                            .Forward = True
                            .Wrap = wdFindStop
                            
                            Do While .Execute
                                If Selection.Start = lastPos Then Exit Do
                                lastPos = Selection.Start
                                c = c + 1
                                Selection.Collapse wdCollapseEnd
                            Loop
                        End With
                        
                        ' שלב ב: ביצוע ההחלפה בפועל במידה ונמצאו מופעים
                        If c > 0 Then
                            Selection.HomeKey Unit:=wdStory
                            With Selection.Find
                                .ClearFormatting
                                .Replacement.ClearFormatting
                                .Text = findText
                                .Replacement.Text = replaceText
                                .MatchWildcards = isWildcard
                                .Forward = True
                                .Wrap = wdFindContinue
                                If repColor <> -1 Then .Replacement.Font.Color = repColor
                                .Execute Replace:=wdReplaceAll
                            End With
                        End If
                        
                        FastReplaceAndCount = c
                    End Function
                    

                    1. ניקוי כפילויות של סימני פיסוק ואותיות
                      בשלב הראשון, המאקרו עובר על המסמך ומנקה הקלדות כפולות ומיותרות:

                    נקודות כפולות: מחליף שתי נקודות רצופות (..) בנקודה אחת.

                    ריבוי נקודות: מחליף רצף של ארבע נקודות או יותר (....) בנקודה אחת (באמצעות זיהוי תבניות חכם).

                    פסיקים וגרשיים: מחליף פסיק כפול (,,) בפסיק בודד, ושני גרשיים רצופים ('') בגרש בודד.

                    אותיות סופיות כפולות: מחליף רצפים שגויים של אותיות סופיות (םם, ןן, ץץ, ףף, ךך) באות סופית אחת.

                    קיצור יודי"ם: מחליף שלושה יודי"ם רצופים (ייי) בשניים (יי).

                    1. סידור רווחים, סוגריים ומעברי שורה
                      בשלב זה, המאקרו מטפל בנראות הכללית של הטקסט ומוודא שהריווח תקין:

                    הוספת רווחים חסרים: אם הוקלדה נקודה או פסיק ומיד אחריהם מילה (ללא רווח), המאקרו מפריד ביניהם ומוסיף את הרווח החסר.

                    הסרת רווחים לפני סימני פיסוק: מתקן שגיאות שבהן הוקלד רווח לפני נקודה, פסיק או גרש (לדוגמה: הופך , ל-, ).

                    ניקוי רווחים בתוך סוגריים: מוחק רווחים מיותרים שמופיעים מיד לאחר פתיחת סוגריים או רגע לפני סגירתם (הופך ( מילה ) ל-(מילה)).

                    ריווח חיצוני לסוגריים: מוודא שיש רווח תקני לפני פתיחת סוגריים ואחרי סגירת סוגריים (בתנאי שאין שם סימן פיסוק אחר).

                    מחיקת רווחים כפולים: סורק את כל המסמך ומצמצם כל רווח כפול לרווח אחד.

                    סידור אנטרים ומעברי שורה: מחליף שני אנטרים רצופים (פסקאות ריקות) באנטר אחד, ומוחק רווחים מיותרים שהוקלדו בטעות בדיוק לפני אנטר או לפני מעבר שורה ידני (Shift+Enter).

                    1. איתור שגיאות הקלדה והדגשתן באדום (בקרת איכות)
                      המאקרו משמש כעורך לשוני שמתריע על מילים קטועות או שגיאות הקלדה נפוצות על ידי צביעתן באדום:

                    אות סופית בתחילת מילה: מזהה וצובע אות סופית (ם, ן, ץ, ף, ך) שהוקלדה מיד אחרי רווח.

                    אות סופית באמצע מילה: מזהה וצובע אות סופית שמיד אחריה הוקלדה אות רגילה (לדוגמה: המילה "שלוםם" תצבע את ה-'ם' הראשונה, או "עכשיןו").

                    אותיות בודדות וקטועות: מזהה אותיות בודדות שעומדות לבדן (רווח לפני ורווח או אנטר אחרי) וצובע אותן, כדי להתריע על מילה שנקטעה בטעות.

                    1. החזרת צבע רגיל למקרים לגיטימיים (ניקוי הדגשות)
                      מכיוון שהשלב הקודם צובע כל אות בודדת, המאקרו חכם מספיק כדי לעבור שוב ולבטל את הצבע האדום (להחזיר לשחור/אוטומטי) עבור אותיות בודדות שהן תקינות לחלוטין בשפה העברית:

                    מסיר את הצבע מאותיות הקידומת או מילים בנות אות אחת: ן, ק, ה, ף, ת, ש, ג (למשל ה' הידיעה, ו' החיבור אם הוקלדה בטעות כבודדת, וכד').

                    מסיר את הצבע מגרש בודד שמגיע אחרי אותיות.

                    1. סנכרון ותיקון עיצוב סוגריים (טיפול בבאג של Word)
                      המאקרו סורק מחדש את כל המסמך ומחפש כל תו של סוגריים עגולים () או מרובעים [].

                    עבור כל סוגר שהוא מוצא, הוא "מסתכל" על האות העברית שצמודה אליו וקורא את סוג הגופן שלה (למשל: פרנק-ריל, דוד, נרקיסים).

                    הוא "מכריח" את הסוגריים לקבל בדיוק את אותו הגופן העברי, ובכך מונע את התופעה שבה הסוגריים "קופצים" לעיצוב אנגלי (כמו Arial) ונראים מנותקים, עבים או לא שייכים לטקסט.

                    עריכה:
                    הקוד החדש נערך ותוקן

                    דאנציגד מנותק
                    דאנציגד מנותק
                    דאנציג
                    מדריכים
                    כתב נערך לאחרונה על ידי
                    #12

                    @יאיר-דניאל
                    אצלי הקוד החדש נכנס לLOOP אין סופי.

                    יאיר דניאלי תגובה 1 תגובה אחרונה
                    0
                    • דאנציגד דאנציג

                      @יאיר-דניאל
                      אצלי הקוד החדש נכנס לLOOP אין סופי.

                      יאיר דניאלי מנותק
                      יאיר דניאלי מנותק
                      יאיר דניאל
                      כתב נערך לאחרונה על ידי
                      #13

                      @דאנציג איזה גודל קובץ?
                      כי אצלי עובד מצויין.
                      אבל שמת לב שיש בו כמה אי דיוקים קטנים.
                      אם יהיה לי זמן אעבוד על זה בלילה

                      דאנציגד תגובה 1 תגובה אחרונה
                      0
                      • יאיר דניאלי יאיר דניאל

                        @דאנציג איזה גודל קובץ?
                        כי אצלי עובד מצויין.
                        אבל שמת לב שיש בו כמה אי דיוקים קטנים.
                        אם יהיה לי זמן אעבוד על זה בלילה

                        דאנציגד מנותק
                        דאנציגד מנותק
                        דאנציג
                        מדריכים
                        כתב נערך לאחרונה על ידי
                        #14

                        @יאיר-דניאל כתב בשיתוף | המשך - "מתעדכן" אוסף מאקרו לוורד - אינדקס מאקרו שימושי + הוראות חשובות.:

                        איזה גודל קובץ?

                        57 עמו'

                        תגובה 1 תגובה אחרונה
                        1
                        • ש מנותק
                          ש מנותק
                          שאלתיאל
                          כתב נערך לאחרונה על ידי שאלתיאל
                          #15
                          מאקרו להחלת טור אחד לפי סגנון

                          צריך לפני זה להחיל 2 טורים על כל המסמך ולאחר מכן המאקרו מחזיר את הפיסקאות הרצויות לטור אחד,
                          בתחילת המאקרו נפתחת חלונית בה בוחרים את הסגנונות הרצויים, ניתן לבחור מספר סגנונות במקביל, לאחר מכן המאקרו מוסיף מעבר מקטע רציף לפני ואחרי כל פיסקה בסגנונות שנבחרו ומחיל עליהם הגדרה של טור אחד, אם יש שני פיסקאות רצופות בסגנונות שנבחרו הוא לא מוסיף מעבר מקטע ביניהם.
                          מומלץ אחר כך להחליף את כל המעברי מקטע לסגנון רגיל.
                          המאקרו כאן החלת טור אחד לפי סגנון.docm

                          המאקרו נערך כשעה אחרי שהועלה, יש להורידו שוב

                          תגובה 1 תגובה אחרונה
                          3

                          שלום! נראה שהשיחה הזו מעניינת אותך, אבל עדיין אין לך חשבון.

                          נמאס לכם לגלול בין אותם הפוסטים בכל ביקור? כשנרשמים לחשבון, תמיד תחזרו בדיוק למקום שבו הייתם קודם, ותוכלו לבחור לקבל התראות על תגובות חדשות (בין אם במייל, ובין אם בהתראת פוש). תוכלו גם לשמור סימניות ולפרגן ב-upvote לפוסטים כדי להביע הערכה לחברי קהילה אחרים.

                          בעזרת התרומה שלך, הפוסט הזה יכול להיות אפילו טוב יותר 💗

                          הרשמה התחברות

                          • התחברות

                          • אין לך חשבון עדיין? הרשמה

                          • התחברו או הירשמו כדי לחפש.
                          • פוסט ראשון
                            פוסט אחרון
                          0
                          • חוקי הפורום
                          • פופולרי
                          • לא נפתר
                          • משתמשים
                          • חיפוש גוגל בפורום
                          • צור קשר