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

שיתוף | ידיעה חשובה VBA: ביטול פעולה אחרונה למאקרו שלם כיחידה אחת

מתוזמן נעוץ נעול הועבר עזרה הדדית - VBA word
17 פוסטים 7 כותבים 492 צפיות 5 עוקבים
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • 1 121244

    @menajemmendel אולי ש @pcinfogmach יוסיף את זה לעיצוב תורני?

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

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

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

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

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

      @menajemmendel נו באמת.
      אין ל @pcinfogmach איזה מאקרו שיוסיף את זה אחד אחד? 😜

      תגובה 1 תגובה אחרונה
      1
      • menajemmendelM menajemmendel

        אני רוצה לשתף את הציבור בידיעה מאד חשובה, שכמדומני הרבה אנשים לא מכירים אותה [אפ' GPT לא הכיר אותה, ואפ' התכווח איתי שלא קיימת עד שהבתי לו הוכחות מפורשות]
        לאחר הפעלת מאקרו אם עושים ביטול פועלה אחרונה מבטל אותה צד צד, ואם המאקרו היה משהו ארוך, הדבר הזה מאד קשה.
        אז יש פונקציה שמגדיר את כל המאקרו כיחידה אחת לענין ביטול פעולה אחרונה,
        אתם יכולים לע' כאן, פעולה מאד קלה
        https://learn.microsoft.com/en-us/office/vba/word/Concepts/Working-with-Word/working-with-the-undorecord-object
        כמדומני שידידנו @pcinfogmach ו @האדם-החושב שעמלים כ''כ עם התוסף לתועלת הציבור ישמחו לדעת את זה

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

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

        Dim my_undo As Object // מי שלא מבין שורה זאת היא שלא התייחס אליה
         Set my_undo = Application.UndoRecord
         my_undo.StartCustomRecord ("כאן כותבים השם של החטיבה איך שרוצים שיופיעה בתוך הרשימה של ביטול פעולה אחרונה")
        

        אחרי זה כו כותבים כל המאקרו וכו'
        ובסוף

        my_undo.EndCustomRecord
        

        נמצא משהו כזה:

         Set my_undo = Application.UndoRecord
         my_undo.StartCustomRecord ("my name")
         ''''MACRO''''
         my_undo.EndCustomRecord
        

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

        אז מה שצריך לעשות הוא להוסיף פקודה, מתחילת הפקודה שאם יהיה בתוך המאקרו איזה תקלה, מיד יסגור את הסוגריים, ורק אח''כ יצא מהמקרו, וז נראה משהו כזה:

        Dim my_undo As Object
        Set my_undo = Application.UndoRecord
        my_undo.StartCustomRecord ("my name")
        On Error GoTo ending
        
         ''''MACRO''''
        
        ending:
        my_undo.EndCustomRecord
        
        P תגובה 1 תגובה אחרונה
        5
        • menajemmendelM menajemmendel

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

          Dim my_undo As Object // מי שלא מבין שורה זאת היא שלא התייחס אליה
           Set my_undo = Application.UndoRecord
           my_undo.StartCustomRecord ("כאן כותבים השם של החטיבה איך שרוצים שיופיעה בתוך הרשימה של ביטול פעולה אחרונה")
          

          אחרי זה כו כותבים כל המאקרו וכו'
          ובסוף

          my_undo.EndCustomRecord
          

          נמצא משהו כזה:

           Set my_undo = Application.UndoRecord
           my_undo.StartCustomRecord ("my name")
           ''''MACRO''''
           my_undo.EndCustomRecord
          

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

          אז מה שצריך לעשות הוא להוסיף פקודה, מתחילת הפקודה שאם יהיה בתוך המאקרו איזה תקלה, מיד יסגור את הסוגריים, ורק אח''כ יצא מהמקרו, וז נראה משהו כזה:

          Dim my_undo As Object
          Set my_undo = Application.UndoRecord
          my_undo.StartCustomRecord ("my name")
          On Error GoTo ending
          
           ''''MACRO''''
          
          ending:
          my_undo.EndCustomRecord
          
          P מנותק
          P מנותק
          pcinfogmach
          מדריכים
          כתב ב נערך לאחרונה על ידי
          #11

          @menajemmendel
          רק הערה קטנה: הוספת קוד זה למאקרו עלול להאט את המאקרו ובפרט במאקרו מורכב.
          לשיקולכם....

          גמ"ח עזרה וייעוץ בנושאי מחשבים

          menajemmendelM תגובה 1 תגובה אחרונה
          0
          • P pcinfogmach

            @menajemmendel
            רק הערה קטנה: הוספת קוד זה למאקרו עלול להאט את המאקרו ובפרט במאקרו מורכב.
            לשיקולכם....

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

            @pcinfogmach
            איך אתה יודע? לא שאני לא מאמין לך, אני מתכוון, איך גילית את זה?

            P תגובה 1 תגובה אחרונה
            0
            • menajemmendelM menajemmendel

              @pcinfogmach
              איך אתה יודע? לא שאני לא מאמין לך, אני מתכוון, איך גילית את זה?

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

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

              הבעיה היא שמאקרו זה דבר כל כך עדין (או דפוק) שכל דבר קטן "מעצבן אותו".

              גמ"ח עזרה וייעוץ בנושאי מחשבים

              menajemmendelM תגובה 1 תגובה אחרונה
              0
              • P pcinfogmach

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

                הבעיה היא שמאקרו זה דבר כל כך עדין (או דפוק) שכל דבר קטן "מעצבן אותו".

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

                @pcinfogmach כתב בשיתוף | ידיעה חשובה VBA: ביטול פעולה אחרונה למאקרו שלם כיחידה אחת:

                וגם מסברא

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

                P תגובה 1 תגובה אחרונה
                0
                • menajemmendelM menajemmendel

                  @pcinfogmach כתב בשיתוף | ידיעה חשובה VBA: ביטול פעולה אחרונה למאקרו שלם כיחידה אחת:

                  וגם מסברא

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

                  P מנותק
                  P מנותק
                  pcinfogmach
                  מדריכים
                  כתב ב נערך לאחרונה על ידי pcinfogmach
                  #15

                  @menajemmendel כתב בשיתוף | ידיעה חשובה VBA: ביטול פעולה אחרונה למאקרו שלם כיחידה אחת:

                  ואילו ע''י פקודה זו הוא מפסיק לצלם בכל פעולה, אלא עושה צילום בתהחלב ובסוף

                  אני לא בעניינים אבל לפי מה שזכור לי הוא ממשיך לצלם ואדרבה הוא יוצר איזהו ערימה של צילומים.

                  ציטוט מלינק שהבאת בתחילת השרשרור:
                  The StartCustomRecord method begins recording the actions that are included in the custom undo record.
                  ועוד שם:
                  All the actions taken by the code between the StartCustomRecord call and the EndCustomRecord call are linked into one UndoRecord object.

                  גמ"ח עזרה וייעוץ בנושאי מחשבים

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

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

                    P תגובה 1 תגובה אחרונה
                    0
                    • האדם החושבה האדם החושב

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

                      P מנותק
                      P מנותק
                      pcinfogmach
                      מדריכים
                      כתב ב נערך לאחרונה על ידי
                      #17

                      @האדם-החושב כתב בשיתוף | ידיעה חשובה VBA: ביטול פעולה אחרונה למאקרו שלם כיחידה אחת:

                      אולי צריך להוסיף את זה לתוך המאקרו שביוזר פורם עצמו?

                      כן

                      גמ"ח עזרה וייעוץ בנושאי מחשבים

                      תגובה 1 תגובה אחרונה
                      1
                      • menajemmendelM menajemmendel התייחס לנושא זה
                      • menajemmendelM menajemmendel התייחס לנושא זה
                      • מ מניין התייחס לנושא זה

                      • התחברות

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

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