שינוי בין הקלטת מאקרו לבין ביצועה
-
@pcinfogmach כתב בשינוי בין הקלטת מאקרו לבין ביצועה:
@חוות-דעת
מוזר כי לי הקוד של דאנציג עבד אולי נמחק לך איזה תיו בטעות נסה אולי להעתיק את הקוד שוב - בהצלחה.אכן, ניסיתי שוב, והצלחתי.
אבל למעשה, הגעת מאוחר מידי... כי כבר ייגעתי בעצמי, והצלחתי להקליט לעצמי מאקרו שיעבוד לי.
אמנם, מצד אחד, זה הקלטות פשוטות של מאקרו, כמו יהודי פשוט, בלי מילים מהוקצעות שידועים רק ליודעי בינה...
אבל מצד שני זה הרבה יותר משוכלל מהקוד הנ"ל, כי המאקרו שלי עושה:
דבר ראשון מייצר עותק גיבוי ליתר בטחון.
מכניס קודים למיקומים של הקישורים שבין הטקסט הראשי לטקסט ההערות. (לצורך עימוד בתוכנה נפרדת, במקרה שלי אינדיזיין)
מייצא גם הערות שוליים, גם הערות סיום, וגם הטקסט הראשי למסמכים נפרדים.
נותן אפשרות לשמור, ולבחור שם ומיקום.אני מאמין, שאפשר לשכלל אותו יותר טוב, אבל כאמור, בניתי אותו באופן פשוט ביותר, של הקלטה של פעולה אחר פעולה, וצירופים אח"כ.
אולי המאקרו שהפנו אותו אליו מקודם, עושה את העבודה יותר טוב, הבעיה היא שיש שם איזה בעיה, הוא העלה קובץ שמחלץ כל מיני קבצים עם סיומת לא מוכרת (לי...) ואני לא יודע איך להשתמש בו.עריכה:
אני מעתיק לכם כאן הקוד. ואשמח מאד אם מישהו יוכל להוסיף ולשדרג אותו בכמה דברים:
- כעת, בסוף כל התהליך נשארים עם חלון פתוח של שמירת המסמך המקורי. הייתי רוצה שהמאקרו 'יכריח' לסגור הקובץ המקורי בלי שמירה. כי לפני ייצוא הטקסט הראשי נעשים בו כל מיני שינויים של הוספות סימונים לקישורים של ההערות, ואח"כ אני מוחק את כל ההערות מהטקסט כדי שיעבור רק הטקסט ולא ההערות (אני לא רוצה להעביר בצורה של טקסט נקי, כי כך אני יאבד את כל ההדגשים שבטקסט. לכן אני לא רוצה לשמור אותו במתכונת הזו, רק כמו שהיתה לפני התהליך.
- אני רוצה לשמור את הכל הטקסטים המייוצאים כפורמט RTF ולא קובץ וורד רגיל.
- הייתי רוצה שהטקסטים המיוצאים יישמרו באופן אוטומטי בשם הערות שוליים\הערות סיום\וטקסט ראשי באותה תיקיה של הקובץ המקורי. כך שצריכים רק להפעיל המאקרו, והכל מסתדר לבד בלי נגיעת יד.
Sub פירוק_טקסטים_עם_סימונים_לעימוד() ' מייצא כל ההערות שוליים והערות סיום והטקסט הראשי למסמך נפרד 'מכניס קודים במקום הערות שוליים וסיום לצורך עימוד עתידי בתוכנה אחרת ' שומר עותק גיבוי למקרה של טעויות ' Selection.WholeStory Selection.Copy Documents.Add DocumentType:=wdNewBlankDocument Selection.PasteAndFormat (wdUseDestinationStylesRecovery) ActiveDocument.SaveAs2 FileName:="שמירת עותק גיבוי.docx", FileFormat:= _ wdFormatXMLDocument, LockComments:=False, Password:="", AddToRecentFiles _ :=True, WritePassword:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts _ :=False, SaveNativePictureFormat:=False, SaveFormsData:=False, _ SaveAsAOCELetter:=False, CompatibilityMode:=15 ActiveDocument.Save ActiveWindow.Close Selection.MoveLeft Unit:=wdCharacter, Count:=1 'מכניס סימונים במקום הערות שוליים והערות סיום Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = "^f" .Replacement.Text = "*^&" .Forward = True .Wrap = wdFindContinue End With Selection.Find.Execute Replace:=wdReplaceAll Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = "^e" .Replacement.Text = "%^&" .Forward = True .Wrap = wdFindContinue End With Selection.Find.Execute Replace:=wdReplaceAll 'מייצא הערות שוליים ActiveWindow.View.SeekView = wdSeekFootnotes Selection.WholeStory Selection.Copy Documents.Add DocumentType:=wdNewBlankDocument Selection.PasteAndFormat (wdUseDestinationStylesRecovery) 'מכניס סימונים במקום מספור Selection.Find.ClearFormatting With Selection.Find.Font .Superscript = True .Subscript = False End With Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = "" .Replacement.Text = "*" .Forward = True .Wrap = wdFindContinue .Format = True End With Selection.Find.Execute Replace:=wdReplaceAll ActiveDocument.Save ActiveDocument.SaveAs2 FileName:="הערות סיום.docx", FileFormat:= _ wdFormatXMLDocument, LockComments:=False, Password:="", AddToRecentFiles _ :=True, WritePassword:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts _ :=False, SaveNativePictureFormat:=False, SaveFormsData:=False, _ SaveAsAOCELetter:=False, CompatibilityMode:=15 ActiveWindow.Close 'מייצא הערות סיום ActiveWindow.View.SeekView = wdSeekEndnotes Selection.WholeStory Selection.Copy Documents.Add DocumentType:=wdNewBlankDocument Selection.PasteAndFormat (wdUseDestinationStylesRecovery) 'מכניס סימונים במקום מספור Selection.Find.ClearFormatting With Selection.Find.Font .Superscript = True .Subscript = False End With Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = "" .Replacement.Text = "%" .Forward = True .Wrap = wdFindContinue .Format = True End With Selection.Find.Execute Replace:=wdReplaceAll ActiveDocument.Save ActiveDocument.SaveAs2 FileName:="הערות סיום.docx", FileFormat:= _ wdFormatXMLDocument, LockComments:=False, Password:="", AddToRecentFiles _ :=True, WritePassword:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts _ :=False, SaveNativePictureFormat:=False, SaveFormsData:=False, _ SaveAsAOCELetter:=False, CompatibilityMode:=15 ActiveWindow.Close 'מוחק ההפניות של הערות שוליים וסיום שבתוך הטקסט הראשי Selection.GoTo What:=wdGoToLine, Which:=wdGoToFirst, Count:=1, Name:="" Selection.Find.ClearFormatting With Selection.Find .Text = "^?" .Replacement.Text = "" .Forward = True .Wrap = wdFindAsk End With With Selection.Find .Text = "^e" .Replacement.Text = "" .Forward = True .Wrap = wdFindContinue End With Selection.Find.Execute Replace:=wdReplaceAll Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = "^f" .Replacement.Text = "" .Forward = True .Wrap = wdFindContinue End With Selection.Find.Execute Replace:=wdReplaceAll 'מייצא הטקסט הראשי למסמך נפרד Selection.WholeStory Selection.Copy Documents.Add DocumentType:=wdNewBlankDocument Selection.PasteAndFormat (wdUseDestinationStylesRecovery) ActiveDocument.Save ActiveDocument.SaveAs2 FileName:="טקסט ראשי.docx", FileFormat:= _ wdFormatXMLDocument, LockComments:=False, Password:="", AddToRecentFiles _ :=True, WritePassword:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts _ :=False, SaveNativePictureFormat:=False, SaveFormsData:=False, _ SaveAsAOCELetter:=False, CompatibilityMode:=15 ActiveWindow.Close ActiveWindow.Close End Sub
-
@חוות-דעת כתב בשינוי בין הקלטת מאקרו לבין ביצועה:
ואשמח מאד אם מישהו יוכל להוסיף ולשדרג אותו בכמה דברים:
תנסה לשאול את ציאט גי פי טי זה נשמע כמו דברים פשוטים שהוא יכול לעשות לך בקלות
-
@pcinfogmach כתב בשינוי בין הקלטת מאקרו לבין ביצועה:
@חוות-דעת כתב בשינוי בין הקלטת מאקרו לבין ביצועה:
ואשמח מאד אם מישהו יוכל להוסיף ולשדרג אותו בכמה דברים:
תנסה לשאול את ציאט גי פי טי זה נשמע כמו דברים פשוטים שהוא יכול לעשות לך בקלות
מי זה, ומה זה?
-
@חוות-דעת
https://chat.openai.com
בנטפרי עובד רק בדפדפן פיירפוקס -
@pcinfogmach כתב בשינוי בין הקלטת מאקרו לבין ביצועה:
@חוות-דעת
https://chat.openai.com
בנטפרי עובד רק בדפדפן פיירפוקסאין לי סמס. אפשר להירשם רק עם זה.
-
-
@pcinfogmach כתב בשינוי בין הקלטת מאקרו לבין ביצועה:
תודה.
אבל לא שווה לי הזמן שאני הולך לבזבז באתר הזה עד שאני יראה התוצאה...
ידנית זה ילך כבר יותר מהר... -
@חוות-דעת כתב בשינוי בין הקלטת מאקרו לבין ביצועה:
הייתי רוצה שהמאקרו 'יכריח' לסגור הקובץ המקורי בלי שמירה.
ActiveDocument.Close SaveChanges:=False
ייתכן שאפשר למקד אותו למסמך מסויים עם משתנים
כלומר בתחילת המאקרו לפני הכל תכניסdim doc as document set doc = activedocument ואז בסוף המאקרו doc.Close SaveChanges:=False
-
@חוות-דעת כתב בשינוי בין הקלטת מאקרו לבין ביצועה:
אני רוצה לשמור את הכל הטקסטים המייוצאים כפורמט RTF ולא קובץ וורד רגיל.
פשוט יש לשנות אתהשורה הזו
ActiveDocument.SaveAs2 FileName:="טקסט ראשי.docx", FileFormat:= _
ל
ActiveDocument.SaveAs2 FileName:="טקסט ראשי.rtf", FileFormat:= _
-
@חוות-דעת כתב בשינוי בין הקלטת מאקרו לבין ביצועה:
הייתי רוצה שהטקסטים המיוצאים יישמרו באופן אוטומטי בשם הערות שוליים\הערות סיום\וטקסט ראשי באותה תיקיה של הקובץ המקורי.
בתחילת המאקרו הכנס
dim docpath as string docpath = ActiveDocument.path
ואז בסוף
לכתובDim newDoc As Document Set newDoc = Documents.Add 'פה יש להכניס את הקוד להדבקת ההערות שוליים newDoc.SaveAs2 docPath & "\" & "הערות שוליים.rtf" newDoc.Close
-
@pcinfogmach כתב בשינוי בין הקלטת מאקרו לבין ביצועה:
@חוות-דעת כתב בשינוי בין הקלטת מאקרו לבין ביצועה:
הייתי רוצה שהמאקרו 'יכריח' לסגור הקובץ המקורי בלי שמירה.
ActiveDocument.Close SaveChanges:=False
ייתכן שאפשר למקד אותו למסמך מסויים עם משתנים
כלומר בתחילת המאקרו לפני הכל תכניסdim doc as document set doc = activedocument ואז בסוף המאקרו doc.Close SaveChanges:=False
לא הבנתי ההבדל שבין שני המהלכים.
וייש"כ על כל הקודים
-
שמחתי לעזור
@חוות-דעת כתב בשינוי בין הקלטת מאקרו לבין ביצועה:
לא הבנתי ההבדל שבין שני המהלכים.
ההבדל בין שני המהלכים הוא שבמהלך הראשון הוא עלול לסגור קבצים אחרים שנפתחים תוך כדי הרצת המאקרו ולא את הקובץ הראשון
-
@pcinfogmach כל המאקרו הסתבך לי... לא רק הקודים שנתת אתה, אלא גם הקוד המקורי שאני הקלטתי.
בקוד שאתה נתת לי עלה לי השגיאה הבאה:
וכשרציתי לחזור לנוסחה הקודמת ג"כ קבלתי שגיאה פתאום, (לא ממש 'קוד המקורי', כי אני כן הוספתי את השורה של סגירת הקובץ בסוף בלי שמירה, וגם שיניתי את הסוג הקובץ ל-rtf, אבל לא נראה לי שזה היתה מקור השגיאה):
-
@pcinfogmach מה שעוד מוזר לי, שכאן נראה שהשגיאה היא באמצע הרצת הפעולות על 'הערות סיום', שזה אומר שעל פי המאקרו כבר היה אמור להיווצר קובץ גיבוי של המסמך, וגם ייצוא הערות שוליים.
אבל למעשה לא נוצר קובץ הערות שוליים, רק קובץ גיבוי.נ.ב. הקוד שנתת לי, שיישמר הנתיב המקורי, עובד!! (כאמור, בקובץ הגיבוי שנוצר).
תודה על העזרה הנפלאה!
-
@pcinfogmach כתב בשינוי בין הקלטת מאקרו לבין ביצועה:
שמחתי לעזור
@חוות-דעת כתב בשינוי בין הקלטת מאקרו לבין ביצועה:
לא הבנתי ההבדל שבין שני המהלכים.
ההבדל בין שני המהלכים הוא שבמהלך הראשון הוא עלול לסגור קבצים אחרים שנפתחים תוך כדי הרצת המאקרו ולא את הקובץ הראשון
לא ממש הבנתי, איזה מסמכים נפתחים באמצע הרצת המאקרו? ולמה שיסגרו אם שמים הקוד במקום הנכון??
-
@pcinfogmach אני חושב שהבנתי הבעיה. כי א"א לשים הקוד של שמירת הנתיב כמה פעמים באותו מאקרו. האם זה נכון? כי הוא מצביע לי תמיד על הפעם השני שזה מופיע. (כזכור, הקוד שלי אמור לייצר 4 מסמכים, במשך ההרצה)
-
@pcinfogmach אני לא יודע מה פי' 'לשנות את המשתנים'.
חוץ מזה, פתאום, שוב, הקוד של @דאנציג הפסיק לעבוד, אני שוב מקבל את אותה שגיאה כמו שכתבתי למעלה.
ייש"כ על הסבלנות והעזרה!
אני מעתיק את הקוד, כמו שהוא עכשיו:
Sub פירוק_טקסטים_עם_סימונים_לעימוד_זמני() ' מייצא כל ההערות שוליים והערות סיום והטקסט הראשי למסמך נפרד 'מכניס קודים במקום הערות שוליים וסיום לצורך עימוד עתידי בתוכנה אחרת ' שומר עותק גיבוי למקרה של טעויות ' Dim docpath As String docpath = ActiveDocument.Path Selection.WholeStory Selection.Copy Documents.Add DocumentType:=wdNewBlankDocument Selection.PasteAndFormat (wdUseDestinationStylesRecovery) ActiveDocument.SaveAs2 FileName:="שמירת עותק גיבוי.docx", FileFormat:= _ wdFormatXMLDocument, LockComments:=False, Password:="", AddToRecentFiles _ :=True, WritePassword:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts _ :=False, SaveNativePictureFormat:=False, SaveFormsData:=False, _ SaveAsAOCELetter:=False, CompatibilityMode:=15 ActiveDocument.Save ActiveDocument.Close 'מכניס סימונים במקום הערות שוליים והערות סיום Selection.MoveLeft Unit:=wdCharacter, Count:=1 Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = "^f" .Replacement.Text = "*^&" .Forward = True .Wrap = wdFindContinue End With Selection.Find.Execute Replace:=wdReplaceAll Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = "^e" .Replacement.Text = "%^&" .Forward = True .Wrap = wdFindContinue End With Selection.Find.Execute Replace:=wdReplaceAll 'מייצא הערות שוליים ActiveWindow.View.SeekView = wdSeekFootnotes Selection.WholeStory Selection.Copy 'הקוד לא פעיל זמנית כדי לנסות לשמור המסמך בנתיב הקובץ המקורי 'Documents.Add DocumentType:=wdNewBlankDocument Dim newDoc As Document Set newDoc = Documents.Add Selection.PasteAndFormat (wdUseDestinationStylesRecovery) 'מכניס סימונים במקום מספור Selection.Find.ClearFormatting With Selection.Find.Font .Superscript = True .Subscript = False End With Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = "" .Replacement.Text = "*" .Forward = True .Wrap = wdFindContinue .Format = True End With Selection.Find.Execute Replace:=wdReplaceAll 'הקוד לא פעיל זמנית כדי לנסות לשמור המסמך בנתיב הקובץ המקורי ' ActiveDocument.Save ' ActiveDocument.SaveAs2 FileName:="הערות שוליים.rtf", FileFormat:= _ ' wdFormatXMLDocument, LockComments:=False, Password:="", AddToRecentFiles _ ' :=True, WritePassword:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts _ ' :=False, SaveNativePictureFormat:=False, SaveFormsData:=False, _ ' SaveAsAOCELetter:=False, CompatibilityMode:=15 ' ActiveWindow.Close newDoc.SaveAs2 docpath & "\" & "הערות שוליים.rtf" newDoc.Close 'מייצא הערות סיום ActiveWindow.View.SeekView = wdSeekEndnotes Selection.WholeStory Selection.Copy 'הקוד לא פעיל זמנית כדי לנסות לשמור המסמך בנתיב הקובץ המקורי ' Documents.Add DocumentType:=wdNewBlankDocument Dim newDoc As Document Set newDoc = Documents.Add Selection.PasteAndFormat (wdUseDestinationStylesRecovery) 'מכניס סימונים במקום מספור Selection.Find.ClearFormatting With Selection.Find.Font .Superscript = True .Subscript = False End With Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = "" .Replacement.Text = "%" .Forward = True .Wrap = wdFindContinue .Format = True End With Selection.Find.Execute Replace:=wdReplaceAll newDoc.SaveAs2 docpath & "\" & "הערות סיום.rtf" newDoc.Close 'הקוד לא פעיל זמנית כדי לנסות לשמור המסמך בנתיב הקובץ המקורי ' ActiveDocument.Save ' ActiveDocument.SaveAs2 FileName:="הערות סיום.rtf", FileFormat:= _ ' wdFormatXMLDocument, LockComments:=False, Password:="", AddToRecentFiles _ ' :=True, WritePassword:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts _ ' :=False, SaveNativePictureFormat:=False, SaveFormsData:=False, _ ' SaveAsAOCELetter:=False, CompatibilityMode:=15 ' ActiveWindow.Close 'מוחק ההפניות של הערות שוליים וסיום שבתוך הטקסט הראשי Selection.GoTo What:=wdGoToLine, Which:=wdGoToFirst, Count:=1, Name:="" Selection.Find.ClearFormatting With Selection.Find .Text = "^?" .Replacement.Text = "" .Forward = True .Wrap = wdFindAsk End With With Selection.Find .Text = "^e" .Replacement.Text = "" .Forward = True .Wrap = wdFindContinue End With Selection.Find.Execute Replace:=wdReplaceAll Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = "^f" .Replacement.Text = "" .Forward = True .Wrap = wdFindContinue End With Selection.Find.Execute Replace:=wdReplaceAll 'מייצא הטקסט הראשי למסמך נפרד Selection.WholeStory Selection.Copy ' Documents.Add DocumentType:=wdNewBlankDocument Dim newDoc As Document Set newDoc = Documents.Add Selection.PasteAndFormat (wdUseDestinationStylesRecovery) newDoc.SaveAs2 docpath & "\" & "טקסט ראשי.rtf" newDoc.Close ' ActiveDocument.Save ' ActiveDocument.SaveAs2 FileName:="טקסט ראשי.rtf", FileFormat:= _ ' wdFormatXMLDocument, LockComments:=False, Password:="", AddToRecentFiles _ ' :=True, WritePassword:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts _ ' :=False, SaveNativePictureFormat:=False, SaveFormsData:=False, _ ' SaveAsAOCELetter:=False, CompatibilityMode:=15 ' ActiveWindow.Close ActiveDocument.Close SaveChanges:=False End Sub