שינוי בין הקלטת מאקרו לבין ביצועה
-
אני מקליט מאקרו שיעתיק כל תוכן הערות שוליים למסמך אחר ולשמרו.
התהליך שאני עושה היא, אני שולח הסמן לתוך הערות שוליים > בוחר הכל > פותח מסמך חדש > מדביק הכל > שומר וסוגר.
הבעיה היא שכשאני מפעיל אח"כ את המאקרו, הוא בוחר הכל, כל המסמך כולו גם הטקסט למעלה.
קודם כל מדוע?? והעיקר, איך עושים שיבחר רק תוכן ההערות שוליים ולא יותר? -
@חוות-דעת
מדוע:
כיצד ירדת להערות שוליים (כידוע מאקרו אינו קולט פעולות שנעשות על ידי העכבר)...
צריך להפעיל פקודה לעבור להערות שוליים.
תבדוק את זהSub Macro1() ' ' Macro1 Macro ' ' If ActiveWindow.ActivePane.View.Type = wdPrintView Or ActiveWindow. _ ActivePane.View.Type = wdWebView Or ActiveWindow.ActivePane.View.Type = _ wdPrintPreview Then ActiveWindow.View.SeekView = wdSeekFootnotes Else ActiveWindow.View.SplitSpecial = wdPaneFootnotes End If Selection.WholeStory Selection.Copy Documents.Add DocumentType:=wdNewBlankDocument Selection.PasteAndFormat (wdFormatPlainText) End Sub
עריכה:
עכשיו ראיתי שיש את הפוסט הזה כנראה יעזור לך.
בהצלחה -
@pcinfogmach כתב בשינוי בין הקלטת מאקרו לבין ביצועה:
@חוות-דעת
אולי תעלה את הקוד ונראה מה הבעיה
למה לא להתשמש עם הקוד של דאנציג?אני מקבל שגיאה
-
@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
לא הבנתי ההבדל שבין שני המהלכים.
וייש"כ על כל הקודים