- הוסף לסימניות
- #901
תודה לכל העוזרים
בקשר לדף ההוא אין לי הרשאות לזה.
בקשר למקרו שהופך הערות תג להערות שוליים - תודה.
תודה לכל העוזרים
לצערי זו התגובה (על אף שנבחר טקסט)מה? אתה לא מבין מה כתוב?
לתועלת כל מי שלא הבין, הנה האשכול בשפת המדינה.
#1
שלום.
שאלה:
יש טקסט (ארוך מאד) בוורד עם הערות שוליים. אנחנו מעוניינים ל'החזיר' את ההערות לטקסט - כלומר במקום הערות שוליים יופיעו המקורות בגוף הטקסט, בתוך סוגריים (ובכתב קטן יותר.)
יש איזו דרך לעשות את זה? (אשמח לשמוע על כל פתרון, גם אם הוא בתשלום.)
תודה רבה
#2
יש שני דרכים.
א. על ידי שימוש בתוכנת מאקרו חיצונית (ארוך, מסובך, ומעצבן).
ב. 'קרש' יכתוב סקריפט קצר, בכמה דקות (קצר, פשוט, ועובד נפלא).
קרש, מחכים לך.
#3
אקרא בבוקר. תודה רבה מאד על ההתייחסות.
#4
להלן מאקרא ממוקדת יותר לצורך הענין, ובזה יתרונו (הקל מאד, יש לציין) על התוסף (פלאג-אין) הנזכר -- שמפני התמקדותו אפשר לחסוך 'בדרך' כמה פעולות שאפשר ויהי' צורך-הכרח לעשות לאחר ההשתמשות עם הפלאג-אין (וכגון להקטנת ההערות: שאפשרי הדבר ע"י הפלאג-אין - רק באם שותלים על-ידה גם קוד לפני ואחרי, שאז אפשר לחפש ולהחליף את אלו הקודים ומה שביניהם, ולהקטינם).
בנוסף ('על הדרך') נרשם כאן במאקרא, אשר באם ההערות הם בעלי יותר מפיסקא אחת, שאז במקום סימון פיסקא יהי' טאב (ואפשר כמובן להחליפו לסימן אחר, או לבטל כליל אופצי' זו - ע"י מחיקת הנצבע בכחול דלקמן). והסיבה לזה הוא, מפני שכל סימון פיסקא (בווארד) כולל בתוכו את העיצוב של כל הפיסקא, ובאם ייכנס סימון פיסקא של ההערות לתוך פנים הטעקסט - יקבל זה הפיסקא כולו את עיצובו של פיסקאות ההערות, וכמדומה שאין זה דבר הנרצה...
הנצבע בצבע אדום דלקמן:
() הם הסוגריים הנשתלים בפנים הטעקסט לפני ואחרי ההערה המיובאת. 8 הוא הגודל של ההערה (עם הסוגריים). ואפשר כמובן להחליף להנ"ל למשהו אחר.
קוד:
Sub FootnotesToMain()
Dim i As Integer, myRange As Range
For i = 1 To ActiveDocument.Footnotes.Count
Set myRange = ActiveDocument.Footnotes(1).Range
If InStr(myRange, Chr(13)) > 0 Then _
myRange.Find.Execute FindText:=Chr(13), replacewith:=Chr(9), _
Wrap:=wdFindStop, Replace:=wdReplaceAll
myRange.Copy
With ActiveDocument.Footnotes(1).Reference
.Paste: .InsertBefore "(": .InsertAfter ")": .Font.SizeBi = 8
End With
Next i
End Sub
ואני מקווה שאין בזה בבחי' כל המוסיף גורע.
#5
לייזער
תודה רבה על הושטת העזרה.
ברגע שזה יהיה ממש למעשה כנראה שיהיו לי עוד שאלות...עדיין לא הוחלט סופית אם להשאיר ההערות (ציון מקורות) במקומן או להחזירן לטקסט.
#6
לייזער!
איך האב ליב דיין הערליכע היברו...
ישר כח אויף אלעס!
#7
בהמשך למאקרא שהועלה לעיל (ועד שיתברר היכן נמצאת אופצי' כזו מובנית בתוך ווארד) - הנה נמלכתי בדעתי אשר למען שלימות הענין (אף אם לעת-עתה אינו נוגע כ"כ אל הפועל) כדאי לבצע בה כמה שינויים 'קוסמטיים' (אשר יפורטו להלן), ומצורף בזה שוב כאשר ההוספות (המשמעותיים) צבועים בצבע חום (או איזה צבע שזה רק יהי').
ואלו הן ההוספות:
א. בעת העתקת ההערה -- התו הראשון שבהערה מועתקת יחד עם ההערה, מלבד אם הוא סימון הפניית ההערה שאז אינה מועתקת.
ב. אינו מעתיק את אלו הרווחים המיותרים שישנם (באם ישנם..) בתחילת ההערה או בסופה (הנקרא בלע"ז: leading/trailing spaces).
ג. בעת ההדבקה בתוך הטעקסט -- מקודם לא נלקח בחשבון את פונקציית ה"העתק והדבק החכמים" המובנית בווארד (ראה: כלים>אפשרויות>עריכה), אשר גורמת בעת הדבקת טעקסט כלשהו - שיתווספו רווחים לפני ואחרי הטעקסט; וזה גרם כאן לאי-אסתטיקה, מאחר והסוגר הפותח שבתחילת ההערה (שנשתלה בתוך הטעקסט ע"י המאקרא - לאחר ההדבקה) נכנסה לפני הרווח שבתחילת ההערה. -- כאן סודר זה ע"י ניטרול הפונקצי' הנ"ל תוך כדי הרצת המאקרא.
ד. עיצוב הסוגריים שמסביב להערה -- הושם דגש שיהיו זהים בעיצובם (=ישנם כמה סיבות שיכולים לגרום שלא יהיו באותו העיצוב).
ה. כללי -- הוספת שורת מצב (מופיע בתחתית המסך) בעת הרצת המאקרא, בכדי לדעת היכן מחזיק (תועלתי במיוחד לטעקסטים ארוכים..).
ואפשר כמובן להוסיף ולשנות עוד ועוד בכדי שיתאים לתנאים מסויימים, אלא שבשביל זה יש כבר צורך לראות בפועל במה דברים אמורים.
אגב: כדאי לקחת בחשבון אשר בעת ההדבקה לתוך הטעקסט - ההערה מקבלת כברירת מחדל את עיצוב סגנון הפיסקא שאליו הודבקה (ההקטנה נעשית לאחר מכן). ולדוגמא: באם סגנון הפיסקא (שאליו מדביקים את ההערה) הוגדרה כברירת מחדל שתהי' מודגשת, הנה כאשר מעתיקים הערה שעיצוב ברירת המחדל שלה היא שאינה מודגשת - המודגש יהפוך לאינו מודגש, והאינו מודגש למודגש. (אלא אם כן שינו באופן ידני בתוך ההערות את העיצוב שלה, שאז באם אינה מתאימה לעיצוב ברירת המחדל שלה (כפי שהיא במקומה), הנה אף בהעברתה למקום אחר אינה מקבלת שינויים).
קוד:
Sub FootnotesToMain()
Dim Adjust As Boolean, myRange As Range
Dim i As Integer, X As Integer
Application.ScreenUpdating = False
Adjust = Options.PasteAdjustWordSpacing: Options.PasteAdjustWordSpacing = False
X = ActiveDocument.Footnotes.Count
For i = 1 To X
StatusBar = i & ":" & X
Set myRange = ActiveDocument.Footnotes(1).Range
With myRange
If InStr(myRange, Chr(13)) > 0 Then _
.Find.Execute FindText:=Chr(13), ReplaceWith:=Chr(9), _
Wrap:=wdFindStop, Replace:=wdReplaceAll
.MoveStart Count:=-1: If .Characters(1) = Chr(2) Then .MoveStart Count:=1
.MoveStart Count:=Len(myRange) - Len(LTrim(myRange))
.MoveEnd Count:=Len(RTrim(myRange)) - Len(myRange)
.Copy
End With
With ActiveDocument.Footnotes(1).Reference
.Paste: .InsertBefore " (": .InsertAfter ")"
Set DupFont1 = .Characters(2).Font.Duplicate
Set DupFont2 = .Characters.Last.Font.Duplicate
.Characters.Last.Font = DupFont1: .Characters.First.Font = DupFont2
.MoveStart Count:=1: .Font.SizeBi = 8
End With
Next i
Application.ScreenUpdating = True: Options.PasteAdjustWordSpacing = Adjust
End Sub
נ.ב. קיוויתי במאד שלא אצטרך לחזור ולהטריח בהקפצה עם שינויים והוספות, אך לא אסתייעא מילתא.. ועמכם הסליחה (מתאים לרוח ימים אלו..).
חתימה וגח"ט.
#8
מדהים כמה שזה פשוט.
ניסיתי על קטע מהטקסט לצורך הדגמה. פשוט נהדר.
באמת תודה רבה.
גמר חתימה טובה
#9
ר' לייזער
כל הכבוד
אתה אוסף זכויות ליום הדין בכמויות...
כה לחי
גמח"ט
#10
רבותי, לר' לייזר יש קרדיט עצום אצל משתמשי תג. הוא יצר תוסף תוכנה ל'וורד' ששולף את כל סגנונות הטקסט שבמסמך, ומאפשר לשים קוד לפניהם וקוד לאחריהם, בלי להסתבך עם עשרות 'חפש החלף'.(ראה כאן:http://prog.co.il/showpost.php?p=119528&postcount=41)
הבן אדם הוא 'נותן' במלא מובן המילה!!!
#11
בטח יסלחני על כך, אך לא ידוע לי איך מתמודדים עם מחמאות שכאלו אשר אינני מרגיש כלל ראוי להם...
ועכ"פ, עיקר תגובתי הוא לגבי 'חלוקת הקרדיטים' - אשר חשוב לי להבהיר שהתוסף הנזכר לא לבד עשיתיו, כי אם הי' בכח הרבים, ע"י שיתוף רעיונותיהם של כמה וכמה מהחברים, ועל כולם: מנהל פורום זה - קרש שי' - שעזרני ברעיונותיו ועצותיו המועילות על כל צעד ושעל, וכפי שפירטתי שם.
מה עושים אם המקרו לא מגיב.מצאתי שמור אצלי:
====
הוראות:
לאחר ייצוא מתג, מכניסים ההערות בסוף קובץ הראשי. מכניסים פסקה עם "+++" (ללא המרכאות) בין טקסט הראשי לטקסט ההערות. המאקרו מזהה את טקסט ההערות מסימן "+++" ואילך.
כדאי להריץ את המאקרו כאשר עוד ישנם כל הקודים וסימנים של תג – כפי שהם מוארים בצבע צהוב ע"י הייצוא. כי על פיהם בודק המאקרו באם כל הערה היא בפיסקא בפני עצמה, או שכמה הערות באים בתוך פיסקא אחת.
להפעיל המאקרו יש להריץ פקודת ConnectFootnotes.
בברירת מחדל – ייחוס הקישורים בפנים ובהערות שהמאקרו מחבר ביניהם הם 0, היינו ללא ייחוס. באם רוצים לשנות את ייחוס הקישורים – ניתן לשנות כן במאקרו, בשורה: Notes 0, 0. המספר הראשון הוא לקישורים שבפנים, והמספר השני הוא לקישורים שבהערות.
באם אין קישורים בטקסט, אך ישנם סימנים אחרים שרוצים לקשר את הטקסטים על פיהם – ניתן כמובן להחליף (לפני הרצת המאקרו) את אותם הסימנים לסימני קישורי הערה כפי שנראים בייצוא מתג (כגון: "<*1>"); או, לחילופין, לסימנים שבהם המאקרו משתמש: "+|+" (לפנים) ו"+|#" (להערות) [אגב: באם ישנם מכבר סימנים אלו בתוך הטקסט, מסיבה כלשהי, ואין רוצים שהמאקרו יפעל על פיהם, יש להסיר סימן ' שבתחילת השורה התשיעית של הפונקצי' Notes, בכדי שיחליף את הסימנים הנ"ל לסימן אחר, ובכך לא יפריע למהלכו של המאקרו].
שים לב: לאחר שהמאקרו ישתול את כל ההערות במקומם - גם ימחוק מסימן "+++" האמור עד לסיום הקובץ, וזאת גם אם יש טקסט נוסף כלשהוא בין סימן הנ"ל לבין סימון ההערה הראשונה (שמשם ואילך יושתל בהערות במקומם).
והנה המאקרו (שנכתבה בשותפות עם כמה מידידיי, ותודתי להם):
קוד:
קוד:Sub ConnectFootnotes() Notes 0, 0 End Sub Function Notes(Optional iFN1 As Integer, Optional iFN2 As Integer, Optional bIn As Boolean) As Integer Dim i As Integer, sFN(1) As String, J(1) As Long, myRange() As Range, sMsg As String, iViewType As Integer, bSmartCut As Boolean If Not bIn Then Application.ScreenUpdating = False: iViewType = ActiveDocument.ActiveWindow.View.Type If Application.Version >= 12 Then ActiveDocument.ActiveWindow.View.Type = wdPrintView Else ActiveDocument.ActiveWindow.View.Type = wdNormalView ActiveDocument.StoryRanges(1).Select: Selection.End = 0: If Not bIn Then Call initial If Val(iFN1) = 0 Then sFN(0) = "\*" Else sFN(0) = "$" & CStr(iFN1) & " " If Val(iFN2) = 0 Then sFN(1) = "\*" Else sFN(1) = "$" & CStr(iFN2) & " " With Selection.Find If .Execute(findText:="+++", Wrap:=wdFindContinue) Then Selection.Collapse wdCollapseEnd Else sMsg = "הכנס ""+++"" לפני טעקסט ההערות!": GoTo X3 'If .Execute(FindText:="+(|[+#])", ReplaceWith:="#\1", Replace:=wdReplaceAll, MatchWildcards:=True, Wrap:=wdFindContinue) Then i = 1 If .Execute(findText:="\<" & sFN(1) & "[0-9 ]{1,}\>", ReplaceWith:="+|#", Replace:=wdReplaceAll, MatchWildcards:=True, Wrap:=wdFindStop) Then i = i + 1 If .Execute(findText:="\<" & sFN(0) & "[0-9 ]{1,}\>", ReplaceWith:="+|+", Replace:=wdReplaceAll, MatchWildcards:=True, Wrap:=wdFindContinue) Then i = i + 1 J(0) = UBound(split(ActiveDocument.Range.Text, "+|+")): J(1) = UBound(split(ActiveDocument.Range.Text, "+|#")) If J(0) <> J(1) Then sMsg = "אין תאימות לקישורים! (" & J(0) & "<>" & J(1) & ")": ActiveDocument.Undo i: GoTo X3 If J(0) = 0 Then GoTo X3 ReDim myRange(J(0)): i = 1: Selection.End = 0: .Text = "+|#": .Wrap = wdFindContinue While .Execute StatusBar = "Setting footnote range " & i & ":" & UBound(myRange) With Selection J(1) = (.MoveStartUntil(Chr(13), wdBackward)) + 1: If .Range.HighlightColorIndex = 9999999 Or .Range.HighlightColorIndex = 0 Then If J(1) < 0 Then .MoveStart 1, J(1) * -1 If Not i = 1 Then myRange(i - 1).SetRange start:=myRange(i - 1).start, End:=.start Set myRange(i) = ActiveDocument.Range(start:=.start, End:=.End) If i = UBound(myRange) Then myRange(i).SetRange start:=myRange(i).start, End:=ActiveDocument.Range.End: GoTo X1 i = i + 1: .Collapse wdCollapseEnd End With Wend X1: Selection.End = 0: .Execute "+|+": bSmartCut = Options.SmartCutPaste: Options.SmartCutPaste = False With Selection: .Delete: .Footnotes.Add Range:=Selection.Range, Reference:="" ActiveDocument.StoryRanges(1).Footnotes(1).Reference.Select: .Range.HighlightColorIndex = wdNoHighlight: .Copy: .Collapse wdCollapseEnd End With .Execute ReplaceWith:="^c", Replace:=wdReplaceAll, Wrap:=wdFindContinue For i = 1 To UBound(myRange) StatusBar = "Inserting footnotes " & i & ":" & UBound(myRange): While Right(myRange(i), 1) = Chr(13): myRange(i).MoveEnd wdCharacter, -1: Wend ActiveDocument.StoryRanges(2).Footnotes(i).Range.Select: Selection.ParagraphFormat = myRange(i).Paragraphs.First.Range.ParagraphFormat myRange(i).Copy: Selection.PasteAndFormat wdPasteDefault: If i = UBound(myRange) Then Exit For Next i Options.SmartCutPaste = bSmartCut: ActiveDocument.StoryRanges(2).Find.Execute "+|#", ReplaceWith:="", Replace:=wdReplaceAll, Wrap:=wdFindContinue ActiveDocument.StoryRanges(1).Select: Selection.End = 0: .Execute "+++", Wrap:=wdFindContinue: With Selection: .MoveEnd wdStory: .Delete: .End = 0: End With .Text = "": .MatchWildcards = False End With If Not bIn Then ActiveDocument.ActiveWindow.View.Type = iViewType: Application.ScreenUpdating = True Notes = 2: Exit Function X3: With Selection.Find: .Text = "": .Replacement.Text = "": .MatchWildcards = False: End With: Notes = 1 If Not bIn And sMsg <> "" Then MsgBox sMsg, vbMsgBoxRtlReading + vbMsgBoxRight: ActiveDocument.ActiveWindow.View.Type = iViewType: Application.ScreenUpdating = True End Function Private Sub initial() With Selection.Find: .ClearFormatting: .Replacement.ClearFormatting: .Replacement.Text = "" If Not .Execute(findText:="?", Forward:=True, MatchWildcards:=True, MatchCase:=False, Wrap:=wdFindContinue) Then Application.Browser.Next .Text = "": .MatchWildcards = False: Selection.MoveLeft End With End Sub
היכן צורף המקרו?רחמים אתה בסדר גמור. רק מה לעשות לא לכולם יש כסף. זהו.
אולי יש למאקרו המפורסם שלך יכולות משופרות, אך שם (במאקרו החדש) החלון תחת המילה הראשונה שלו נעשית באופן קצת יותר מוצלח. זו דעתי בכל אופן. בלא לגרוע משלל מעלותיו של המאקרו שלך.
אגב, גדלות על העזרה לכולם במאקרו אחר. מעריכים...!
**
מצו"ב המאקרו, שחכתי בדיוק איך שמים אותו בכרטסת חדשה, ובאיזה תיקיה צריך לשים אותה כדי שתהיה תמיד זמינה. בינתיים אפשר להשתמש בו רגיל, פשוט לפתוח את הקובץ לעשות אותו זמין ולהשתמש בפקודות מאקרו.
אפשר לקבל את הקובץ? עדיף המעודכן. אפשר?תלמידים,
מעניין מהיכן קיבלת את הקובץ ההוא, אני כתבתי אותו, ומסתבר שמאז עדכנתי בו הרבה דברים![]()
אני לא בטוח שהבנתי, אם תהפוך את החיפוש - אברהם*888 - זה לא יתן את מה שרצית?החיפוש שאני מבקש הוא לחפש 888*אברהם (בתווים כללייים, כלומר כל מה שבין זה לזה), וממילא לא הרי תוצאת חיפוש מלמעלה למטה, כזו שמלמטה למעלה.
for i = 1 to ?????
Selection.Find.ClearFormatting
With Selection.Find
.Text = "888*אברהם"
.Forward = False
.MatchWildcards = True
End With
Selection.Find.Execute
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "888"
.Replacement.Text = "999"
.Forward = True
.Wrap = wdFindContinue
.MatchAllWordForms = False
End With
Selection.Find.Execute
With Selection
If .Find.Forward = True Then
.Collapse Direction:=wdCollapseStart
Else
.Collapse Direction:=wdCollapseEnd
End If
.Find.Execute Replace:=wdReplaceOne
If .Find.Forward = True Then
.Collapse Direction:=wdCollapseEnd
Else
.Collapse Direction:=wdCollapseStart
End If
End With
next
End Sub
rhon.co.il
מעכשיו, תהיו הראשונים לקבל את כל העדכונים, החדשות, ההפתעות בלעדיות, והתכנים הכי חמים שלנו בפרוג!
חלה שגיאה בשליחה. נסו שוב!
לוח לימודים
מסלולי לימוד שאפשר להצטרף
אליהם ממש עכשיו:
תהילים פרק כה
אלְדָוִד אֵלֶיךָ יי נַפְשִׁי אֶשָּׂא:באֱלֹהַי בְּךָ בָטַחְתִּי אַל אֵבוֹשָׁה אַל יַעַלְצוּ אֹיְבַי לִי:גגַּם כָּל קוֶֹיךָ לֹא יֵבֹשׁוּ יֵבֹשׁוּ הַבּוֹגְדִים רֵיקָם:דדְּרָכֶיךָ יי הוֹדִיעֵנִי אֹרְחוֹתֶיךָ לַמְּדֵנִי:ההַדְרִיכֵנִי בַאֲמִתֶּךָ וְלַמְּדֵנִי כִּי אַתָּה אֱלֹהֵי יִשְׁעִי אוֹתְךָ קִוִּיתִי כָּל הַיּוֹם:וזְכֹר רַחֲמֶיךָ יי וַחֲסָדֶיךָ כִּי מֵעוֹלָם הֵמָּה:זחַטֹּאות נְעוּרַי וּפְשָׁעַי אַל תִּזְכֹּר כְּחַסְדְּךָ זְכָר לִי אַתָּה לְמַעַן טוּבְךָ יי:חטוֹב וְיָשָׁר יי עַל כֵּן יוֹרֶה חַטָּאִים בַּדָּרֶךְ:טיַדְרֵךְ עֲנָוִים בַּמִּשְׁפָּט וִילַמֵּד עֲנָוִים דַּרְכּוֹ:יכָּל אָרְחוֹת יי חֶסֶד וֶאֱמֶת לְנֹצְרֵי בְרִיתוֹ וְעֵדֹתָיו:יאלְמַעַן שִׁמְךָ יי וְסָלַחְתָּ לַעֲוֹנִי כִּי רַב הוּא:יבמִי זֶה הָאִישׁ יְרֵא יי יוֹרֶנּוּ בְּדֶרֶךְ יִבְחָר:יגנַפְשׁוֹ בְּטוֹב תָּלִין וְזַרְעוֹ יִירַשׁ אָרֶץ:ידסוֹד יי לִירֵאָיו וּבְרִיתוֹ לְהוֹדִיעָם:טועֵינַי תָּמִיד אֶל יי כִּי הוּא יוֹצִיא מֵרֶשֶׁת רַגְלָי:טזפְּנֵה אֵלַי וְחָנֵּנִי כִּי יָחִיד וְעָנִי אָנִי:יזצָרוֹת לְבָבִי הִרְחִיבוּ מִמְּצוּקוֹתַי הוֹצִיאֵנִי:יחרְאֵה עָנְיִי וַעֲמָלִי וְשָׂא לְכָל חַטֹּאותָי:יטרְאֵה אוֹיְבַי כִּי רָבּוּ וְשִׂנְאַת חָמָס שְׂנֵאוּנִי:כשָׁמְרָה נַפְשִׁי וְהַצִּילֵנִי אַל אֵבוֹשׁ כִּי חָסִיתִי בָךְ:כאתֹּם וָיֹשֶׁר יִצְּרוּנִי כִּי קִוִּיתִיךָ:כבפְּדֵה אֱלֹהִים אֶת יִשְׂרָאֵל מִכֹּל צָרוֹתָיו:
הנושאים החמים