דילוג לתוכן
  • חוקי הפורום
  • פופולרי
  • לא נפתר
  • משתמשים
  • חיפוש גוגל בפורום
  • צור קשר
עיצובים
  • 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. בקשה | יצירת מאקרו חיפוש והחלפה לפי עיצוב ולא מילים

בקשה | יצירת מאקרו חיפוש והחלפה לפי עיצוב ולא מילים

מתוזמן נעוץ נעול הועבר עזרה הדדית - וורד
14 פוסטים 4 כותבים 71 צפיות 3 עוקבים
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • ע עולה במסילה

    שלום וברכה יש לי המון מסמכים שעיצבתי אותם פעם בגופנים מסוימים ואני מעוניין להחליף את הגופנים הקיימים בגופנים אחרים, אבל הענין הוא שכל פעם אני צריך להגדיר מחדש את העיצוב שברצוני להחליף ואת העיצוב שאני רוצה שיתחלף מה שעל כל קובץ לוקח זמן.
    לכך מי שיכול בבקשה לכתוב לי מאקרו של חיפוש והחלפה לפי עיצוב של גופן אשמח מאוד ובנוסף שאני יוכל לשמור את הגדרת העיצוב באופן קבוע (אפי' אם זה יהיה כמה פקודות מאקרו לכל גופן בשונה) אשמח מאוד
    תודה רבה
    @pcinfogmach

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

    @עולה-במסילה
    יצרתי לך - בעזרת AI.
    מקווה שזה מה שהתכוונת...

    תמונות בספויילר בסוף

    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

    ע תגובה 1 תגובה אחרונה
    2
    • ע עולה במסילה

      שלום וברכה יש לי המון מסמכים שעיצבתי אותם פעם בגופנים מסוימים ואני מעוניין להחליף את הגופנים הקיימים בגופנים אחרים, אבל הענין הוא שכל פעם אני צריך להגדיר מחדש את העיצוב שברצוני להחליף ואת העיצוב שאני רוצה שיתחלף מה שעל כל קובץ לוקח זמן.
      לכך מי שיכול בבקשה לכתוב לי מאקרו של חיפוש והחלפה לפי עיצוב של גופן אשמח מאוד ובנוסף שאני יוכל לשמור את הגדרת העיצוב באופן קבוע (אפי' אם זה יהיה כמה פקודות מאקרו לכל גופן בשונה) אשמח מאוד
      תודה רבה
      @pcinfogmach

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

      @עולה-במסילה כתב בבקשה | יצירת מאקרו חיפוש והחלפה לפי עיצוב ולא מילים:

      שאני רוצה שיתחלף מה שעל כל קובץ לוקח זמן.

      בתוסף 'עיצוב תורני' יש אפשרות החלפה במסמכים מרובים / לפי תיקיות!!!
      b460532f-74e5-4640-8c1e-78c4cd392df4-image.png

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

        @עולה-במסילה כתב בבקשה | יצירת מאקרו חיפוש והחלפה לפי עיצוב ולא מילים:

        שאני רוצה שיתחלף מה שעל כל קובץ לוקח זמן.

        בתוסף 'עיצוב תורני' יש אפשרות החלפה במסמכים מרובים / לפי תיקיות!!!
        b460532f-74e5-4640-8c1e-78c4cd392df4-image.png

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

        @דאנציג אבל הוא מאפשר החלפת קטעים מסויימים בתוך הקובץ, לא?

        תגובה 1 תגובה אחרונה
        0
        • ע עולה במסילה

          שלום וברכה יש לי המון מסמכים שעיצבתי אותם פעם בגופנים מסוימים ואני מעוניין להחליף את הגופנים הקיימים בגופנים אחרים, אבל הענין הוא שכל פעם אני צריך להגדיר מחדש את העיצוב שברצוני להחליף ואת העיצוב שאני רוצה שיתחלף מה שעל כל קובץ לוקח זמן.
          לכך מי שיכול בבקשה לכתוב לי מאקרו של חיפוש והחלפה לפי עיצוב של גופן אשמח מאוד ובנוסף שאני יוכל לשמור את הגדרת העיצוב באופן קבוע (אפי' אם זה יהיה כמה פקודות מאקרו לכל גופן בשונה) אשמח מאוד
          תודה רבה
          @pcinfogmach

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

          @עולה-במסילה למה שלא תעבוד עם סגנונות?

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

            @עולה-במסילה למה שלא תעבוד עם סגנונות?

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

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

            @עולה-במסילה כתב בבקשה | יצירת מאקרו חיפוש והחלפה לפי עיצוב ולא מילים:

            יש לי המון מסמכים שעיצבתי אותם פעם

            ולעבור על מסמכים ישנים, ולבנות סגנונות וכו', זה הרבה יותר קשה מאשר חיפוש והחלפה או מאקרו.
            אמנם אם הוא באמת רוצה, ניתן ליצור סגנונות, ולהעביר אותם למסמכים אחרים, (ואפשר גם חיצוני [בלי לפתוח קובץ קובץ], אבל רק על DOCX, ולא DOC)...

            תגובה 1 תגובה אחרונה
            1
            • ז זאב לבן

              @עולה-במסילה למה שלא תעבוד עם סגנונות?

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

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

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

                @עולה-במסילה
                יצרתי לך - בעזרת AI.
                מקווה שזה מה שהתכוונת...

                תמונות בספויילר בסוף

                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

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

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

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

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

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

                  @עולה-במסילה אתה יכול לסמן קטע - ואז להפעיל את המאקרו - והוא יחליף רק את אותו הקטע

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

                    @עולה-במסילה אתה יכול לסמן קטע - ואז להפעיל את המאקרו - והוא יחליף רק את אותו הקטע

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

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

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

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

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

                      @עולה-במסילה הבנתי - אנסה לשפר את זה.

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

                        @עולה-במסילה הבנתי - אנסה לשפר את זה.

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

                        @עולה-במסילה

                        הנה בכבוד:

                        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

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

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

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

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

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

                          כך זה נראה:
                          c8abf13f-ba1c-4a68-8d02-38c8044bae4b-image.png
                          המשך התהליך זהה למאקרו הקודם

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

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

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

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

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

                            כך זה נראה:
                            c8abf13f-ba1c-4a68-8d02-38c8044bae4b-image.png
                            המשך התהליך זהה למאקרו הקודם

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

                            @יאיר-דניאל תודה רבה אנסה את זה ואענה על כך בהמשך אין מילים...

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

                            • התחברות

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

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