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

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

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

מתוזמן נעוץ נעול הועבר עזרה הדדית - וורד
13 פוסטים 4 כותבים 396 צפיות 6 עוקבים
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • יאיר דניאלי מנותק
    יאיר דניאלי מנותק
    יאיר דניאל
    כתב נערך לאחרונה על ידי יאיר דניאל
    #1

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

    מאקרו חזרה מהערה לטקסט:

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

    Sub חזרה_מהערה_לטקסט()
    '
    ' חזרה_מהערה_לטקסט Macro
    '
    '
        If ActiveWindow.ActivePane.View.Type = wdPrintView Or ActiveWindow. _
            ActivePane.View.Type = wdWebView Or ActiveWindow.ActivePane.View.Type = _
            wdPrintPreview Then
            ActiveWindow.View.SeekView = wdSeekMainDocument
        Else
            ActiveWindow.Panes(2).Close
        End If
        Selection.MoveRight Unit:=wdCharacter, Count:=1
        ActiveWindow.ActivePane.SmallScroll Down:=5
    End Sub
    

    מאקרו מעבר להערת שוליים:

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

    Sub מעבר_להערה()
    '
    ' מעבר_להערה Macro
    '
    '
        If ActiveWindow.ActivePane.View.Type = wdPrintView Or ActiveWindow. _
            ActivePane.View.Type = wdWebView Or ActiveWindow.ActivePane.View.Type = _
            wdPrintPreview Then
            ActiveWindow.View.SeekView = wdSeekFootnotes
        Else
            ActiveWindow.View.SplitSpecial = wdPaneFootnotes
        End If
        Selection.MoveRight Unit:=wdCharacter, Count:=2
    End Sub
    
    תגובה 1 תגובה אחרונה
    4
    • יאיר דניאלי מנותק
      יאיר דניאלי מנותק
      יאיר דניאל
      כתב נערך לאחרונה על ידי יאיר דניאל
      #2

      3 מאקרואים להערות שוליים:

      בהמשך להנ"ל אני משתף עוד שלושה מאקרואים - להצגת הערות שוליים.
      (הבהרה חשובה: לא אני כתבתי את המאקרואים האלו - זה נכתב ע"י @שלמה11 בעקבות הבקשה שלי כאן וכאן)

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

      מאקרו מציג תוכן הערות

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

      אז הנה המאקרו:

      Sub מציג_תוכן_הערות()
          
          Dim rng As Range
          Set rng = Selection.Range
          rng.MoveStart wdCharacter, -1
          rng.MoveEnd wdCharacter, 1
              
          If rng.Footnotes.Count > 0 Then
              With UserForm1
                  .Label1.Caption = rng.Footnotes(1).Range.Text
                  .Label1.AutoSize = True
                  .Label1.Width = 190
                  .Height = .Label1.Height + 80
                  .Show vbModeless
              End With
              On Error Resume Next
              Application.OnTime Now + TimeValue("00:00:04"), "ת"
              On Error GoTo 0
          End If
              
      End Sub
      Sub מציג_תוכן_הערות()
          Unload UserForm1
      End Sub
      
      

      בכדי שזה יעבוד - אתם צריכים לייבא לuserform את הקובץ הבא:
      UserForm1.frm
      הגדירו קיצור מקשים נוח - תכוונו עם החיצים שהסמן יעמוד ליד המספר הערת שוליים - או לפני או אחרי - צמוד, לחצו על הקיצור מקשים והערה תעלה.
      זה נראה כך:
      הקלטה 2025-12-02 153405.gif

      • שימו לב! בקוד אצלי זה מוגדר ל4 שניות - תוכלו לשנות את זה לפי מה שנוח לכם.

      מאקרו מציג תוכן הערה

      • מאקרו זה - פחות "משוכלל" מהקודם, ואם תשאלו א"כ למה הבאתי אותו, למה הוא טוב?
        אז ככה: בהערות שוליים ארוכות, לא יספיק לכם מספר שניות לעבור על כל ההערה (חוץ מזה שאתם בלחץ שעוד שנייה זה נסגר...) - במאקרו הזה - בכדי שההערה תיסגר צריך ללחוץ אישור = אנטר. כך ש.. קחו את הזמן שלכם תעברו על ההערה באופן יסודי ובלי לחץ, סיימתם? פשוט לחצו אנטר ותמשיכו הלאה!

      הנה המאקרו:

      Sub מציג_תוכן_הערה()
      '
      ' מציג_תוכן_הערה Macro
      '
      '
          Dim rng As Range
          Selection.MoveStart wdCharacter, -1
          Set rng = Selection.Range
          
          If rng.Footnotes.Count > 0 Then
              MsgBox rng.Footnotes(1).Range.Text, vbInformation, "הערת שוליים"
          End If
          Selection.Move wdCharacter, 1
      End Sub
      

      וכך זה נראה בפועל:
      כ.gif
      הערה חשובה - במאקרו הזה - חייבים שהסמן יהיה אחרי מספר ההערה, ולא לפני.

      עצה שלי - תגדירו קיצור מקשים - לשני המאקרואים (אצלי זה מוגדר הראשון כ-CTRL+. והשני כ- CTRL+,) זה ישמש אתכם מלא!

      מאקרו הצגת כל הערות השוליים שבעמוד הקודם:

      אם אתם מעוניינים לראות בלחיצה אחת את כל ההערות שוליים בעמוד - יש את המאקרו הזה - שיצר @אביעד - כאן:

      Sub ShowFootnotesFromPreviousPage()
          Dim fn As Footnote
          Dim currPage As Long
          Dim prevPage As Long
          Dim msg As String
          Dim refRange As Range
          
          ' קבל את מספר העמוד הנוכחי
          currPage = Selection.Information(wdActiveEndPageNumber)
          prevPage = currPage - 1
          
          If prevPage < 1 Then
              MsgBox "אין עמוד קודם במסמך.", vbExclamation, "שגיאה"
              Exit Sub
          End If
          
          msg = ""
          
          ' עבור על כל ההערות במסמך
          For Each fn In ActiveDocument.Footnotes
              Set refRange = fn.Reference
              If refRange.Information(wdActiveEndPageNumber) = prevPage Then
                  msg = msg & "• " & Trim(fn.Range.Text) & vbCrLf & vbCrLf
              End If
          Next fn
       
          If msg = "" Then
              MsgBox "אין הערות שוליים בעמוד הקודם.", vbInformation, "אין הערות"
          Else
              MsgBox "הערות שוליים בעמוד הקודם:" & vbCrLf & vbCrLf & msg, vbInformation, "הערות בעמוד " & prevPage
          End If
      End Sub
      
      תגובה 1 תגובה אחרונה
      3
      • יאיר דניאלי מנותק
        יאיר דניאלי מנותק
        יאיר דניאל
        כתב נערך לאחרונה על ידי
        #3

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

        תגובה 1 תגובה אחרונה
        2
        • אביעדא מנותק
          אביעדא מנותק
          אביעד
          מדריכים
          כתב נערך לאחרונה על ידי
          #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 arrFind As Variant, arrRep As Variant
                            
                            ' --- קטגוריה 1: סימני פיסוק וכפילויות ---
                            arrFind = Array("..", ",,", "''", "ייי", "םם", "ןן", "ץץ", "ףף", "ךך")
                            arrRep = Array(".", ",", "'", "יי", "ם", "ן", "ץ", "ף", "ך")
                            For i = LBound(arrFind) To UBound(arrFind)
                                cntPunctuation = cntPunctuation + FastReplaceAndCount(CStr(arrFind(i)), CStr(arrRep(i)), False)
                            Next i
                            cntPunctuation = cntPunctuation + FastReplaceAndCount(".{4,}", ".", True)
                            
                            ' --- קטגוריה 2: תיקוני רווחים, סוגריים ומעברים ---
                            cntSpaces = cntSpaces + FastReplaceAndCount(".?[! ]", "@@^&", True)
                            cntSpaces = cntSpaces + FastReplaceAndCount("@@.", ". ", False)
                            cntSpaces = cntSpaces + FastReplaceAndCount(",?[! ]", "@@^&", True)
                            cntSpaces = cntSpaces + FastReplaceAndCount("@@,", ", ", False)
                            
                            arrFind = Array(" . ", " , ", " ' ", " ,", " .", ", (", ". [", ", [", "[ ", " ]", "( ", " )", _
                                            " ) ", " ( ", "' .", "' ,", "' ]", "  ", "^p^p", " ^p", "^l [", " ^l [")
                            arrRep = Array(". ", ", ", "' ", ",", ".", " (", " [", " [", "[", "]", "(", ")", _
                                           " (", ") ", "'.", "',", "']", " ", "^p", "^p", "^l[", "^l[")
                            For i = LBound(arrFind) To UBound(arrFind)
                                cntSpaces = cntSpaces + FastReplaceAndCount(CStr(arrFind(i)), CStr(arrRep(i)), False)
                            Next i
                            
                            ' הוספת רווחים אחרי נקודה/פסיק וסביב סוגריים באמצעות תווים כלליים
                            cntSpaces = cntSpaces + FastReplaceAndCount("(.)([! ^13])", "\1 \2", True)
                            cntSpaces = cntSpaces + FastReplaceAndCount("(,)([! ^13])", "\1 \2", True)
                            cntSpaces = cntSpaces + FastReplaceAndCount("([! ^13'""])([(\[])", "\1 \2", True)
                            cntSpaces = cntSpaces + FastReplaceAndCount("([)\]])([! ^13.,'""\?\!])", "\1 \2", True)
                            
                            ' טיפול ברווחים כפולים או מיוחדים עם שטרודל
                            cntSpaces = cntSpaces + FastReplaceAndCount("^$. )", "^&@@", False)
                            cntSpaces = cntSpaces + FastReplaceAndCount(" )@@", ")", False)
                            cntSpaces = cntSpaces + FastReplaceAndCount("""""^$", "@@^&", False)
                            cntSpaces = cntSpaces + FastReplaceAndCount("@@""""", """", False)
                        
                            ' --- קטגוריה 3: אותיות ושגיאות שנצבעו באדום ---
                            arrFind = Array(" ם", " ן", " ץ", " ף", " ך", """^$'")
                            For i = LBound(arrFind) To UBound(arrFind)
                                cntRed = cntRed + FastReplaceAndCount(CStr(arrFind(i)), "^&", False, wdColorRed)
                            Next i
                            
                            arrFind = Array("ם[א-ת]", "ן[א-ת]", "ץ[א-ת]", "ף[א-ת]", "ך[א-ת]", " [א-ת] ", " [א-ת]^13")
                            For i = LBound(arrFind) To UBound(arrFind)
                                cntRed = cntRed + FastReplaceAndCount(CStr(arrFind(i)), "^&", True, wdColorRed)
                            Next i
                            
                            ' --- קטגוריה 4: תיקוני הדגשות (החזרה לצבע אוטומטי) ---
                            arrFind = Array("ן [א-ת] ", "ק [א-ת] ", "ה [א-ת] ", "ף [א-ת] ", "ת [א-ת] ", "ש [א-ת] ", "ג [א-ת] ", "' [א-ת] ", _
                                            "ן [א-ת]^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 Bug Fix) ---
                            Selection.HomeKey Unit:=wdStory
                            With Selection.Find
                                .ClearFormatting
                                .Text = "[\(\)\[\]]"
                                .MatchWildcards = True
                                .Wrap = wdFindStop
                                Do While .Execute
                                    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
                            
                            ' שלב א: ספירת מופעים
                            With Selection.Find
                                .ClearFormatting
                                .Text = findText
                                .MatchWildcards = isWildcard
                                .Forward = True
                                .Wrap = wdFindStop
                                
                                Do While .Execute
                                    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
                        

                        6d85ba3d-b9cd-49a2-b8b5-ec3a78c85e25-image.png

                        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 arrFind As Variant, arrRep As Variant
                              
                              ' --- קטגוריה 1: סימני פיסוק וכפילויות ---
                              arrFind = Array("..", ",,", "''", "ייי", "םם", "ןן", "ץץ", "ףף", "ךך")
                              arrRep = Array(".", ",", "'", "יי", "ם", "ן", "ץ", "ף", "ך")
                              For i = LBound(arrFind) To UBound(arrFind)
                                  cntPunctuation = cntPunctuation + FastReplaceAndCount(CStr(arrFind(i)), CStr(arrRep(i)), False)
                              Next i
                              cntPunctuation = cntPunctuation + FastReplaceAndCount(".{4,}", ".", True)
                              
                              ' --- קטגוריה 2: תיקוני רווחים, סוגריים ומעברים ---
                              cntSpaces = cntSpaces + FastReplaceAndCount(".?[! ]", "@@^&", True)
                              cntSpaces = cntSpaces + FastReplaceAndCount("@@.", ". ", False)
                              cntSpaces = cntSpaces + FastReplaceAndCount(",?[! ]", "@@^&", True)
                              cntSpaces = cntSpaces + FastReplaceAndCount("@@,", ", ", False)
                              
                              arrFind = Array(" . ", " , ", " ' ", " ,", " .", ", (", ". [", ", [", "[ ", " ]", "( ", " )", _
                                              " ) ", " ( ", "' .", "' ,", "' ]", "  ", "^p^p", " ^p", "^l [", " ^l [")
                              arrRep = Array(". ", ", ", "' ", ",", ".", " (", " [", " [", "[", "]", "(", ")", _
                                             " (", ") ", "'.", "',", "']", " ", "^p", "^p", "^l[", "^l[")
                              For i = LBound(arrFind) To UBound(arrFind)
                                  cntSpaces = cntSpaces + FastReplaceAndCount(CStr(arrFind(i)), CStr(arrRep(i)), False)
                              Next i
                              
                              ' הוספת רווחים אחרי נקודה/פסיק וסביב סוגריים באמצעות תווים כלליים
                              cntSpaces = cntSpaces + FastReplaceAndCount("(.)([! ^13])", "\1 \2", True)
                              cntSpaces = cntSpaces + FastReplaceAndCount("(,)([! ^13])", "\1 \2", True)
                              cntSpaces = cntSpaces + FastReplaceAndCount("([! ^13'""])([(\[])", "\1 \2", True)
                              cntSpaces = cntSpaces + FastReplaceAndCount("([)\]])([! ^13.,'""\?\!])", "\1 \2", True)
                              
                              ' טיפול ברווחים כפולים או מיוחדים עם שטרודל
                              cntSpaces = cntSpaces + FastReplaceAndCount("^$. )", "^&@@", False)
                              cntSpaces = cntSpaces + FastReplaceAndCount(" )@@", ")", False)
                              cntSpaces = cntSpaces + FastReplaceAndCount("""""^$", "@@^&", False)
                              cntSpaces = cntSpaces + FastReplaceAndCount("@@""""", """", False)
                          
                              ' --- קטגוריה 3: אותיות ושגיאות שנצבעו באדום ---
                              arrFind = Array(" ם", " ן", " ץ", " ף", " ך", """^$'")
                              For i = LBound(arrFind) To UBound(arrFind)
                                  cntRed = cntRed + FastReplaceAndCount(CStr(arrFind(i)), "^&", False, wdColorRed)
                              Next i
                              
                              arrFind = Array("ם[א-ת]", "ן[א-ת]", "ץ[א-ת]", "ף[א-ת]", "ך[א-ת]", " [א-ת] ", " [א-ת]^13")
                              For i = LBound(arrFind) To UBound(arrFind)
                                  cntRed = cntRed + FastReplaceAndCount(CStr(arrFind(i)), "^&", True, wdColorRed)
                              Next i
                              
                              ' --- קטגוריה 4: תיקוני הדגשות (החזרה לצבע אוטומטי) ---
                              arrFind = Array("ן [א-ת] ", "ק [א-ת] ", "ה [א-ת] ", "ף [א-ת] ", "ת [א-ת] ", "ש [א-ת] ", "ג [א-ת] ", "' [א-ת] ", _
                                              "ן [א-ת]^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 Bug Fix) ---
                              Selection.HomeKey Unit:=wdStory
                              With Selection.Find
                                  .ClearFormatting
                                  .Text = "[\(\)\[\]]"
                                  .MatchWildcards = True
                                  .Wrap = wdFindStop
                                  Do While .Execute
                                      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
                              
                              ' שלב א: ספירת מופעים
                              With Selection.Find
                                  .ClearFormatting
                                  .Text = findText
                                  .MatchWildcards = isWildcard
                                  .Forward = True
                                  .Wrap = wdFindStop
                                  
                                  Do While .Execute
                                      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
                          

                          6d85ba3d-b9cd-49a2-b8b5-ec3a78c85e25-image.png

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

                            • התחברות

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

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