@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