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

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

בירור | האם יש דרך להוספת הערות סקירה על הערות שוליים וסיום?

מתוזמן נעוץ נעול הועבר עזרה הדדית - וורד
74 פוסטים 5 כותבים 1.2k צפיות 2 עוקבים
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • י יעב"ץ

    @שמעון-פרידנן
    אני רוצה את הערת הסקירה על ההערה ולא על ההפניה.

    ש מנותק
    ש מנותק
    שמעון פרידנן
    כתב נערך לאחרונה על ידי
    #31

    @יעב-ץ

    @יעב-ץ כתב:

    אני רוצה את הערת הסקירה על ההערה ולא על ההפניה

    זה הבנתי..
    אבל לאיזה מטרה, כדי שלא תצטרך לגלול למעלה כשאתה רואה מילים מוזרחות?
    או מטרה אחרת?

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

      @יעב-ץ

      @יעב-ץ כתב:

      אני רוצה את הערת הסקירה על ההערה ולא על ההפניה

      זה הבנתי..
      אבל לאיזה מטרה, כדי שלא תצטרך לגלול למעלה כשאתה רואה מילים מוזרחות?
      או מטרה אחרת?

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

      @שמעון-פרידנן
      ככה נוח לי מכמה וכמה טעמים.
      קשה לי לפרט כאן.

      ש תגובה 1 תגובה אחרונה
      0
      • י יעב"ץ

        @שמעון-פרידנן
        ככה נוח לי מכמה וכמה טעמים.
        קשה לי לפרט כאן.

        ש מנותק
        ש מנותק
        שמעון פרידנן
        כתב נערך לאחרונה על ידי
        #33

        @יעב-ץ

        @יעב-ץ כתב:

        קשה לי לפרט כאן.

        אז אין לי איך לעזור...

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

          @יעב-ץ

          @יעב-ץ כתב:

          קשה לי לפרט כאן.

          אז אין לי איך לעזור...

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

          @שמעון-פרידנן
          ולמה?
          דהיינו, זה משנה את הפתרון?

          ש ש 2 תגובות תגובה אחרונה
          0
          • י יעב"ץ

            @שמעון-פרידנן
            ולמה?
            דהיינו, זה משנה את הפתרון?

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

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

            תגובה 1 תגובה אחרונה
            2
            • י יעב"ץ

              @שמעון-פרידנן
              ולמה?
              דהיינו, זה משנה את הפתרון?

              ש מנותק
              ש מנותק
              שמעון פרידנן
              כתב נערך לאחרונה על ידי
              #36

              @יעב-ץ כתב:

              ולמה?
              דהיינו, זה משנה את הפתרון?

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

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

                @יעב-ץ כתב:

                ולמה?
                דהיינו, זה משנה את הפתרון?

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

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

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

                ש תגובה 1 תגובה אחרונה
                0
                • י יעב"ץ

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

                  ש מנותק
                  ש מנותק
                  שמעון פרידנן
                  כתב נערך לאחרונה על ידי
                  #38

                  @יעב-ץ כתב:

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

                  כלומר? העמודים של ההערות הם רק בסוף ואתה רוצה שתוכל לראות את ההערות באותם עמודים בלי ללחוץ על ההפניה ולחזור אחורה?

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

                    @יעב-ץ כתב:

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

                    כלומר? העמודים של ההערות הם רק בסוף ואתה רוצה שתוכל לראות את ההערות באותם עמודים בלי ללחוץ על ההפניה ולחזור אחורה?

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

                    @שמעון-פרידנן
                    כן.
                    ואגב, אפשר ליצור פריסה שמציגה את ההערות בסמוך להפניה?

                    ש תגובה 1 תגובה אחרונה
                    0
                    • י יעב"ץ

                      @שמעון-פרידנן
                      כן.
                      ואגב, אפשר ליצור פריסה שמציגה את ההערות בסמוך להפניה?

                      ש מנותק
                      ש מנותק
                      שמעון פרידנן
                      כתב נערך לאחרונה על ידי
                      #40

                      @יעב-ץ כתב:

                      ואגב, אפשר ליצור פריסה שמציגה את ההערות בסמוך להפניה?

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

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

                        @יעב-ץ
                        אז תעשה קיצור דרך עם כפתור
                        קובץ > אפשרויות > התאמה אישית של רצועות הכלים

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

                        @צבי-צ
                        אפשר להוסיף סמלים לקיצורים האלו חוץ ממה שיש כרגע בהצעה?

                        d74a5f44-c347-4ce3-a679-193af6ea16cc-image.jpeg

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

                          @יעב-ץ כתב:

                          ואגב, אפשר ליצור פריסה שמציגה את ההערות בסמוך להפניה?

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

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

                          @שמעון-פרידנן כתב:

                          הם לא בסוף המסמך אלא בסוף "מקטע"

                          @יעב-ץ

                          ב'בקלות' של הרב יואל שילה יש אפשרות כזו:

                          f93b1322-4a5a-44d8-a474-f6d7fbd855d9-image.jpeg

                          ואם אתה מדבר רק על זמן העבודה אתה יכול להחליף בין ההערות שוליים להערות סיום [כלומר שההערות שוליים יהיו בסוף המקטע / הקובץ וההערות סיום בתחתית העמוד.]

                          aba9ab55-0df5-419b-aa0d-90869b3cd7f7-image.jpeg

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

                            איפה תיקיית הסמלים של וורד נמצאת?

                            תגובה 1 תגובה אחרונה
                            0
                            • ש שמעון פרידנן התייחס לנושא זה
                            • צ צבי צ

                              @יעב-ץ
                              נכון,
                              יצרתי מאקרו [ושיפצתי בעזרת קלוד].
                              נשאר לך רק לעשות קיצור דרך.

                              Sub הערת_סקירה_בהערת_שוליים()
                                  Dim cmt As Comment
                                  Dim txt As String
                              
                                  txt = InputBox("הקלד את הערת הסקירה:", "הערת סקירה")
                                  If txt = "" Then Exit Sub
                              
                                  Options.DefaultHighlightColorIndex = wdYellow
                                  Selection.Range.HighlightColorIndex = wdYellow
                              
                                  ActiveWindow.View.SeekView = wdSeekMainDocument
                              
                                  Selection.MoveRight Unit:=wdCharacter, Count:=1, Extend:=wdExtend
                              
                                  Set cmt = Selection.Comments.Add(Range:=Selection.Range)
                                  cmt.Range.Text = txt
                              
                                  ' סגירת חלונית הסקירה - אחרי ההוספה
                                  If ActiveWindow.Panes.Count > 1 Then
                                      ActiveWindow.Panes(2).Close
                                  End If
                                  ActiveWindow.View.SeekView = wdSeekMainDocument
                              End Sub
                              
                              
                              י מנותק
                              י מנותק
                              יעב"ץ
                              כתב נערך לאחרונה על ידי
                              #44

                              @צבי-צ

                              אני משתמש בזה וזה מעולה.
                              יש בזה 3 באגים:

                              1. זה משנה את הזום, בלי לשנות את הגדרת הזום.
                                אני ב'רוחב עמוד', וזה מגדיל מאד בלי לשנות את ההגדרה.
                              2. כשזה יוצר את ההערה, זה קופץ לגוף המסמך, ונשאר שם, במקום להשאר בהערות סיום.
                              3. בעת היצירה, נפתח חלון תחתי של כל ההערות, לכמה שניות.
                              צ תגובה 1 תגובה אחרונה
                              0
                              • י יעב"ץ

                                @צבי-צ

                                אני משתמש בזה וזה מעולה.
                                יש בזה 3 באגים:

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

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

                                https://mitmachim.top/topic/102457/להורדה-מאקרו-לניהול-הערות-סקירה-על-הערות-שוליים-סיום

                                י 2 תגובות תגובה אחרונה
                                0
                                • צ צבי צ

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

                                  https://mitmachim.top/topic/102457/להורדה-מאקרו-לניהול-הערות-סקירה-על-הערות-שוליים-סיום

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

                                  @צבי-צ
                                  אבל איך אני מוריד את זה, דהיינו, איך להשתמש אחרי ההורדה?

                                  צ תגובה 1 תגובה אחרונה
                                  0
                                  • י יעב"ץ

                                    @צבי-צ
                                    אבל איך אני מוריד את זה, דהיינו, איך להשתמש אחרי ההורדה?

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

                                    @יעב-ץ
                                    תסגור את כל המסמכים שפתוחים בוורד.
                                    תוריד את הקובץ המצורף [תוסיף את האות T בסוף] תשמור אותו ע"י הקובץ ש@שמעון-פרידנן בנה,
                                    תפעיל אותו ותחכה שיסיים.
                                    עכשיו תסמן את המקום בהערת שוליים ותלחץ ALT F8 ותבחר ShowFootnoteComments והפעל.
                                    וכמו שכתבו תעשה קיצור דרך ויהיה לך הרבה יותר קל.

                                    Install-Word-Comments.ba

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

                                      @יעב-ץ
                                      תסגור את כל המסמכים שפתוחים בוורד.
                                      תוריד את הקובץ המצורף [תוסיף את האות T בסוף] תשמור אותו ע"י הקובץ ש@שמעון-פרידנן בנה,
                                      תפעיל אותו ותחכה שיסיים.
                                      עכשיו תסמן את המקום בהערת שוליים ותלחץ ALT F8 ותבחר ShowFootnoteComments והפעל.
                                      וכמו שכתבו תעשה קיצור דרך ויהיה לך הרבה יותר קל.

                                      Install-Word-Comments.ba

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

                                      @צבי-צ
                                      לא הבנתי מילה.
                                      אפשר לקבל את הטקסט של המאקרו?
                                      זה הכי פשוט.

                                      צ תגובה 1 תגובה אחרונה
                                      0
                                      • י יעב"ץ

                                        @צבי-צ
                                        לא הבנתי מילה.
                                        אפשר לקבל את הטקסט של המאקרו?
                                        זה הכי פשוט.

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

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

                                        Option Explicit
                                        
                                        '=============================================================
                                        ' הערות סקירה על הפניות להערות שוליים / הערות סיום
                                        ' מודל: ראש אחד לכל הערה + תגובותיו.
                                        ' צביעה צהובה של המילים המסומנות (רק במסמך, לא בטופס).
                                        '=============================================================
                                        
                                        '-------------------------------------------------------------
                                        ' סעיף 1: נקודת כניסה (מכיר את הטופס)
                                        '-------------------------------------------------------------
                                        Private m_CurrentForm As frmComments
                                        
                                        Public Sub ShowFootnoteComments()
                                            Dim idx As Long, isEnd As Boolean
                                            If Not CurrentFootnoteIndex(idx, isEnd) Then
                                                MsgBox "יש להציב את הסמן בתוך הערת שוליים או הערת סיום.", _
                                                       vbInformation, "הצגת הערות סקירה"
                                                Exit Sub
                                            End If
                                        
                                            If Not m_CurrentForm Is Nothing Then
                                                If m_CurrentForm.Visible Then
                                                    m_CurrentForm.LoadNote idx, isEnd
                                                    m_CurrentForm.Show vbModeless
                                                    Exit Sub
                                                End If
                                            End If
                                        
                                            Set m_CurrentForm = New frmComments
                                            m_CurrentForm.LoadNote idx, isEnd
                                            m_CurrentForm.Show vbModeless
                                        End Sub
                                        
                                        '-------------------------------------------------------------
                                        ' סעיף 2: זיהוי ההערה שהסמן נמצא בתוכה
                                        '-------------------------------------------------------------
                                        Public Function CurrentFootnoteIndex(ByRef idx As Long, ByRef isEnd As Boolean) As Boolean
                                            idx = 0
                                            isEnd = False
                                        
                                            Dim st As WdStoryType
                                            st = Selection.StoryType
                                        
                                            Dim selStart As Long
                                            selStart = Selection.Start
                                        
                                            If st = wdFootnotesStory Then
                                                Dim fn As Word.Footnote
                                                For Each fn In ThisDocument.Footnotes
                                                    If selStart >= fn.Range.Start And selStart <= fn.Range.End Then
                                                        idx = fn.Index
                                                        isEnd = False
                                                        CurrentFootnoteIndex = True
                                                        Exit Function
                                                    End If
                                                Next fn
                                            ElseIf st = wdEndnotesStory Then
                                                Dim en As Word.Endnote
                                                For Each en In ThisDocument.Endnotes
                                                    If selStart >= en.Range.Start And selStart <= en.Range.End Then
                                                        idx = en.Index
                                                        isEnd = True
                                                        CurrentFootnoteIndex = True
                                                        Exit Function
                                                    End If
                                                Next en
                                            End If
                                        End Function
                                        
                                        '-------------------------------------------------------------
                                        ' סעיף 3: איסוף השרשור (ראש + תגובות) לפי טווח ההפניה
                                        '-------------------------------------------------------------
                                        Public Function GetThreadForNote(ByVal idx As Long, ByVal isEnd As Boolean) As Collection
                                            Dim result As New Collection
                                        
                                            Dim refStart As Long, refEnd As Long
                                            If isEnd Then
                                                refStart = ThisDocument.Endnotes(idx).Reference.Start
                                                refEnd = ThisDocument.Endnotes(idx).Reference.End
                                            Else
                                                refStart = ThisDocument.Footnotes(idx).Reference.Start
                                                refEnd = ThisDocument.Footnotes(idx).Reference.End
                                            End If
                                        
                                            Dim c As Word.Comment
                                            For Each c In ThisDocument.Comments
                                                On Error Resume Next
                                                Dim scStart As Long, scEnd As Long
                                                scStart = c.Scope.Start
                                                scEnd = c.Scope.End
                                                On Error GoTo 0
                                        
                                                If scStart <= refEnd And scEnd >= refStart Then
                                                    result.Add c
                                                End If
                                            Next c
                                        
                                            Set GetThreadForNote = result
                                        End Function
                                        
                                        '-------------------------------------------------------------
                                        ' סעיף 4: פעולות
                                        '-------------------------------------------------------------
                                        
                                        ' הוספת הערה ראשית (רק אם אין עדיין ראש).
                                        ' צובע את המילים המסומנות בהערת השוליים במרקר צהוב.
                                        ' נשלחים: idx, isEnd (מיקום ההערה), והטקסט של ההערה + כותב.
                                        ' ה-Symbol Selection נלקח כאן מתוך הערת השוליים.
                                        Public Function AddRootComment(ByVal idx As Long, ByVal isEnd As Boolean, _
                                                                       ByVal text As String, _
                                                                       Optional ByVal author As String = "") As Boolean
                                            AddRootComment = False
                                        
                                            ' אסור שני ראשים: בדוק שאין כבר Comment על הטווח
                                            Dim existing As Collection
                                            Set existing = GetThreadForNote(idx, isEnd)
                                            If existing.Count > 0 Then
                                                Exit Function
                                            End If
                                        
                                            ' צביעה צהובה של המילים המסומנות בהערת השוליים (אם יש סימון)
                                            On Error Resume Next
                                            If Selection.StoryType = wdFootnotesStory Or Selection.StoryType = wdEndnotesStory Then
                                                If Selection.Range.Start <> Selection.Range.End Then   ' יש סימון
                                                    Selection.Range.HighlightColorIndex = wdYellow
                                                End If
                                            End If
                                            On Error GoTo 0
                                        
                                            ' יצירת ההערה על ההפניה
                                            On Error GoTo Fail
                                            Dim rng As Word.Range
                                            If isEnd Then
                                                Set rng = ThisDocument.Endnotes(idx).Reference.Duplicate
                                            Else
                                                Set rng = ThisDocument.Footnotes(idx).Reference.Duplicate
                                            End If
                                        
                                            Dim c As Word.Comment
                                            Set c = ThisDocument.Comments.Add(rng, text)
                                            If Len(author) > 0 Then c.author = author
                                        
                                            AddRootComment = True
                                            Exit Function
                                        Fail:
                                            AddRootComment = False
                                        End Function
                                        
                                        ' הוספת תגובה לראש הקיים (נוצר על אותו טווח)
                                        Public Function AddReplyToNote(ByVal idx As Long, ByVal isEnd As Boolean, _
                                                                       ByVal text As String, _
                                                                       Optional ByVal author As String = "") As Boolean
                                            On Error GoTo Fail
                                        
                                            Dim th As Collection
                                            Set th = GetThreadForNote(idx, isEnd)
                                            If th.Count = 0 Then
                                                AddReplyToNote = False
                                                Exit Function
                                            End If
                                        
                                            Dim root As Word.Comment
                                            Set root = th(1)
                                        
                                            Dim rep As Word.Comment
                                            Set rep = root.Replies.Add(root.Scope, text)
                                            If Len(author) > 0 Then rep.author = author
                                        
                                            AddReplyToNote = True
                                            Exit Function
                                        Fail:
                                            AddReplyToNote = False
                                        End Function
                                        
                                        ' מחיקת שרשור שלם (ראש + כל תגובותיו)
                                        Public Function DeleteThread(ByVal idx As Long, ByVal isEnd As Boolean) As Boolean
                                            On Error GoTo Fail
                                        
                                            Dim th As Collection
                                            Set th = GetThreadForNote(idx, isEnd)
                                            If th.Count = 0 Then
                                                DeleteThread = False
                                                Exit Function
                                            End If
                                        
                                            Dim i As Long
                                            For i = th.Count To 1 Step -1
                                                th(i).Delete
                                            Next i
                                        
                                            DeleteThread = True
                                            Exit Function
                                        Fail:
                                            DeleteThread = False
                                        End Function
                                        
                                        
                                        
                                        י תגובה 1 תגובה אחרונה
                                        0
                                        • צ צבי צ

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

                                          Option Explicit
                                          
                                          '=============================================================
                                          ' הערות סקירה על הפניות להערות שוליים / הערות סיום
                                          ' מודל: ראש אחד לכל הערה + תגובותיו.
                                          ' צביעה צהובה של המילים המסומנות (רק במסמך, לא בטופס).
                                          '=============================================================
                                          
                                          '-------------------------------------------------------------
                                          ' סעיף 1: נקודת כניסה (מכיר את הטופס)
                                          '-------------------------------------------------------------
                                          Private m_CurrentForm As frmComments
                                          
                                          Public Sub ShowFootnoteComments()
                                              Dim idx As Long, isEnd As Boolean
                                              If Not CurrentFootnoteIndex(idx, isEnd) Then
                                                  MsgBox "יש להציב את הסמן בתוך הערת שוליים או הערת סיום.", _
                                                         vbInformation, "הצגת הערות סקירה"
                                                  Exit Sub
                                              End If
                                          
                                              If Not m_CurrentForm Is Nothing Then
                                                  If m_CurrentForm.Visible Then
                                                      m_CurrentForm.LoadNote idx, isEnd
                                                      m_CurrentForm.Show vbModeless
                                                      Exit Sub
                                                  End If
                                              End If
                                          
                                              Set m_CurrentForm = New frmComments
                                              m_CurrentForm.LoadNote idx, isEnd
                                              m_CurrentForm.Show vbModeless
                                          End Sub
                                          
                                          '-------------------------------------------------------------
                                          ' סעיף 2: זיהוי ההערה שהסמן נמצא בתוכה
                                          '-------------------------------------------------------------
                                          Public Function CurrentFootnoteIndex(ByRef idx As Long, ByRef isEnd As Boolean) As Boolean
                                              idx = 0
                                              isEnd = False
                                          
                                              Dim st As WdStoryType
                                              st = Selection.StoryType
                                          
                                              Dim selStart As Long
                                              selStart = Selection.Start
                                          
                                              If st = wdFootnotesStory Then
                                                  Dim fn As Word.Footnote
                                                  For Each fn In ThisDocument.Footnotes
                                                      If selStart >= fn.Range.Start And selStart <= fn.Range.End Then
                                                          idx = fn.Index
                                                          isEnd = False
                                                          CurrentFootnoteIndex = True
                                                          Exit Function
                                                      End If
                                                  Next fn
                                              ElseIf st = wdEndnotesStory Then
                                                  Dim en As Word.Endnote
                                                  For Each en In ThisDocument.Endnotes
                                                      If selStart >= en.Range.Start And selStart <= en.Range.End Then
                                                          idx = en.Index
                                                          isEnd = True
                                                          CurrentFootnoteIndex = True
                                                          Exit Function
                                                      End If
                                                  Next en
                                              End If
                                          End Function
                                          
                                          '-------------------------------------------------------------
                                          ' סעיף 3: איסוף השרשור (ראש + תגובות) לפי טווח ההפניה
                                          '-------------------------------------------------------------
                                          Public Function GetThreadForNote(ByVal idx As Long, ByVal isEnd As Boolean) As Collection
                                              Dim result As New Collection
                                          
                                              Dim refStart As Long, refEnd As Long
                                              If isEnd Then
                                                  refStart = ThisDocument.Endnotes(idx).Reference.Start
                                                  refEnd = ThisDocument.Endnotes(idx).Reference.End
                                              Else
                                                  refStart = ThisDocument.Footnotes(idx).Reference.Start
                                                  refEnd = ThisDocument.Footnotes(idx).Reference.End
                                              End If
                                          
                                              Dim c As Word.Comment
                                              For Each c In ThisDocument.Comments
                                                  On Error Resume Next
                                                  Dim scStart As Long, scEnd As Long
                                                  scStart = c.Scope.Start
                                                  scEnd = c.Scope.End
                                                  On Error GoTo 0
                                          
                                                  If scStart <= refEnd And scEnd >= refStart Then
                                                      result.Add c
                                                  End If
                                              Next c
                                          
                                              Set GetThreadForNote = result
                                          End Function
                                          
                                          '-------------------------------------------------------------
                                          ' סעיף 4: פעולות
                                          '-------------------------------------------------------------
                                          
                                          ' הוספת הערה ראשית (רק אם אין עדיין ראש).
                                          ' צובע את המילים המסומנות בהערת השוליים במרקר צהוב.
                                          ' נשלחים: idx, isEnd (מיקום ההערה), והטקסט של ההערה + כותב.
                                          ' ה-Symbol Selection נלקח כאן מתוך הערת השוליים.
                                          Public Function AddRootComment(ByVal idx As Long, ByVal isEnd As Boolean, _
                                                                         ByVal text As String, _
                                                                         Optional ByVal author As String = "") As Boolean
                                              AddRootComment = False
                                          
                                              ' אסור שני ראשים: בדוק שאין כבר Comment על הטווח
                                              Dim existing As Collection
                                              Set existing = GetThreadForNote(idx, isEnd)
                                              If existing.Count > 0 Then
                                                  Exit Function
                                              End If
                                          
                                              ' צביעה צהובה של המילים המסומנות בהערת השוליים (אם יש סימון)
                                              On Error Resume Next
                                              If Selection.StoryType = wdFootnotesStory Or Selection.StoryType = wdEndnotesStory Then
                                                  If Selection.Range.Start <> Selection.Range.End Then   ' יש סימון
                                                      Selection.Range.HighlightColorIndex = wdYellow
                                                  End If
                                              End If
                                              On Error GoTo 0
                                          
                                              ' יצירת ההערה על ההפניה
                                              On Error GoTo Fail
                                              Dim rng As Word.Range
                                              If isEnd Then
                                                  Set rng = ThisDocument.Endnotes(idx).Reference.Duplicate
                                              Else
                                                  Set rng = ThisDocument.Footnotes(idx).Reference.Duplicate
                                              End If
                                          
                                              Dim c As Word.Comment
                                              Set c = ThisDocument.Comments.Add(rng, text)
                                              If Len(author) > 0 Then c.author = author
                                          
                                              AddRootComment = True
                                              Exit Function
                                          Fail:
                                              AddRootComment = False
                                          End Function
                                          
                                          ' הוספת תגובה לראש הקיים (נוצר על אותו טווח)
                                          Public Function AddReplyToNote(ByVal idx As Long, ByVal isEnd As Boolean, _
                                                                         ByVal text As String, _
                                                                         Optional ByVal author As String = "") As Boolean
                                              On Error GoTo Fail
                                          
                                              Dim th As Collection
                                              Set th = GetThreadForNote(idx, isEnd)
                                              If th.Count = 0 Then
                                                  AddReplyToNote = False
                                                  Exit Function
                                              End If
                                          
                                              Dim root As Word.Comment
                                              Set root = th(1)
                                          
                                              Dim rep As Word.Comment
                                              Set rep = root.Replies.Add(root.Scope, text)
                                              If Len(author) > 0 Then rep.author = author
                                          
                                              AddReplyToNote = True
                                              Exit Function
                                          Fail:
                                              AddReplyToNote = False
                                          End Function
                                          
                                          ' מחיקת שרשור שלם (ראש + כל תגובותיו)
                                          Public Function DeleteThread(ByVal idx As Long, ByVal isEnd As Boolean) As Boolean
                                              On Error GoTo Fail
                                          
                                              Dim th As Collection
                                              Set th = GetThreadForNote(idx, isEnd)
                                              If th.Count = 0 Then
                                                  DeleteThread = False
                                                  Exit Function
                                              End If
                                          
                                              Dim i As Long
                                              For i = th.Count To 1 Step -1
                                                  th(i).Delete
                                              Next i
                                          
                                              DeleteThread = True
                                              Exit Function
                                          Fail:
                                              DeleteThread = False
                                          End Function
                                          
                                          
                                          
                                          י מנותק
                                          י מנותק
                                          יעב"ץ
                                          כתב נערך לאחרונה על ידי
                                          #50

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

                                          צ י ש 3 תגובות תגובה אחרונה
                                          0

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

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

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

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

                                          • התחברות

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

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