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

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

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

    בתוסף 'עיצוב תורני' יש אפשרות החלפה במסמכים מרובים / לפי תיקיות!!!
    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
                        • חוקי הפורום
                        • פופולרי
                        • לא נפתר
                        • משתמשים
                        • חיפוש גוגל בפורום
                        • צור קשר