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

    @menajemmendel
    חשוב לדעת ששימוש לא נכון בפעולה זו עלול לגרום לתקלות חמורות.
    וכבר היו דברים מעולם שפקודת מאקרו שכתבתי החזירה שגיאה בזמן ריצה ולחצתי על END, ומה שקרה זה שהפקודה של הקלטת פעולות אחרונות לא הגיעה לסיומה וכל הפעולות שהמשכתי לבצע במסמך נשמרו תחת אותו שם עד שהשתמשתי במאקרו אחר או באותו מאקרו שכלל את הפעולה של סיום הצירוף של כל הפעולות, מה שגרם ש Ctrl+Z ביטל הרבה פעולות והרבה עבודה הלכה לטמיון.
    ולכן חשוב מאוד לעבוד בזה עם לכידת שגיאות ובכל מקרה של שגיאה לסיים את הקלטת הפעולות.

    menajemmendelM מנותק
    menajemmendelM מנותק
    menajemmendel
    כתב ב נערך לאחרונה על ידי menajemmendel
    #5
    פוסט זה נמחק!
    P תגובה 1 תגובה אחרונה
    0
    • menajemmendelM menajemmendel

      פוסט זה נמחק!

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

      @menajemmendel
      לתועלת העניין ולמקרה שזה עדיין רלוונטי:

      לכידת שגיאות הינה פקודת

      on error
      

      בה אתה מגדיר מה התוכנה תעשה במקרה של שגיאה
      מקובל לעשות משהו כמו

      on error goto error_handler
      

      ואז בסוף הקוד לשים

      exit sub
      error_handler:
      

      ואז
      msgbox (עם הודעה כלשהי)
      ובמקרה שלך לעשות את סיום לכידת הטקסט.

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

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

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

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

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

        menajemmendelM תגובה 1 תגובה אחרונה
        0
        • 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
                            • חוקי הפורום
                            • לא נפתר
                            • משתמשים
                            • חיפוש גוגל בפורום
                            • צור קשר