שרשור עזרה בפיתוח התוסף לוורד - עיצוב ספרי קודש
-
אז הנה הקוד המשופץ של הערות ברצף אשמח לקבל הערות והארות
Attribute VB_Name = "הערות_ברצף" Option Explicit Sub הערות_ברצף() Application.ScreenUpdating = False 'AddSectionBreakToEndOfEachPage Dim i, totalPages As Integer, rng As Range, twoColumn As Boolean 'check if layout is 2 columns ' Check if the first section has two columns If ActiveDocument.PageSetup.TextColumns.Count >= 2 Then twoColumn = True 'chnage colums to one to avoide problems with section breaks With ActiveDocument.PageSetup.TextColumns .SetCount numColumns:=1 .EvenlySpaced = True .LineBetween = False End With End If ' Get the total number of pages in the document totalPages = ActiveDocument.ComputeStatistics(wdStatisticPages) ' Loop through each page and add a section break at the end For i = 2 To totalPages Set rng = Selection.GoTo(wdGoToPage, wdGoToAbsolute, i) rng.InsertBreak Type:=wdSectionBreakNextPage Next i 'covert footnotes to endnotes ActiveDocument.Footnotes.Convert With ActiveDocument.Range(Start:=ActiveDocument.Content.Start, End:= _ ActiveDocument.Content.End).EndnoteOptions .Location = wdEndOfSection .NumberingRule = wdRestartContinuous .StartingNumber = 1 .NumberStyle = wdNoteNumberStyleHebrewLetter1 End With 'Set pargraph align justify for Endnotes ActiveWindow.View.SeekView = wdSeekEndnotes Selection.WholeStory Selection.ParagraphFormat.Alignment = wdAlignParagraphJustify Selection.Range.Find.Execute FindText:="^e", ReplaceWith:="^&%?!#...", Forward:=True, Wrap:=wdFindStop, Replace:=wdReplaceAll Selection.Range.Find.Execute FindText:="%?!#... ", ReplaceWith:=" ", Forward:=True, Wrap:=wdFindStop, Replace:=wdReplaceAll Selection.Range.Find.Execute FindText:="%?!#...", ReplaceWith:="", Forward:=True, Wrap:=wdFindStop, Replace:=wdReplaceAll 'restyle endnotes Selection.Find.ClearFormatting With Selection.Find.font .Superscript = True .Subscript = False End With Selection.Find.Replacement.ClearFormatting With Selection.Find.Replacement.font .BoldBi = True .Superscript = False .Subscript = False End With With Selection.Find .text = "^e" .Replacement.text = "^&" .Forward = True .Wrap = wdFindContinue .Format = True .MatchWildcards = False End With Selection.Find.Execute Replace:=wdReplaceAll 'add styleseprator after endnotes Dim secRange As Range Dim fnote As Endnote Dim x As Integer For i = 1 To totalPages Set rng = Selection.GoTo(wdGoToPage, wdGoToAbsolute, i) ' Set the range to the current section Set secRange = Selection.Sections(1).Range ' Loop through each endnote in the section For x = 1 To secRange.endnotes.Count - 1 On Error Resume Next Set fnote = secRange.endnotes(x) fnote.Range.Select Call RemoveParagraphBreaks 'AddStyleSeparator Selection.InsertStyleSeparator On Error GoTo 0 Selection.InsertAfter " " & " " Next x 'הסר פיסקאות בהערה אחרונה For x = secRange.endnotes.Count To secRange.endnotes.Count On Error Resume Next Set fnote = secRange.endnotes(x) fnote.Range.Select Call RemoveParagraphBreaks On Error GoTo 0 'הסר עיצוב קודם בהערה אחרונה אם יש Selection.Collapse Direction:=wdCollapseEnd Selection.font.Reset Next x Next i 'החזר שני טורים אם צריך If twoColumn = True Then With ActiveDocument.PageSetup.TextColumns .SetCount numColumns:=2 .EvenlySpaced = True .LineBetween = False End With End If Call הסר_רווחים_כפולים Application.ScreenUpdating = True Application.ScreenRefresh End Sub Sub RemoveParagraphBreaks() Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .text = "^p" .Replacement.text = " " .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchKashida = False .MatchDiacritics = False .MatchAlefHamza = False .MatchControl = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With Selection.Find.Execute Replace:=wdReplaceAll End Sub Sub הסר_רווחים_כפולים() ' ' Macro10 Macro ' ' Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .text = "( )( )@" .Replacement.text = "\1" .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchKashida = False .MatchDiacritics = False .MatchAlefHamza = False .MatchControl = False .MatchAllWordForms = False .MatchSoundsLike = False .MatchWildcards = True End With Selection.Find.Execute Replace:=wdReplaceAll End Sub
-
למי יש פיתרון? יש בעיה בהערות ברצף (גם במקורי) במסמכים עם שני טורים שאם יש רק הערה אחת בעמוד אז ההערה נשארת בצד ימין על הטור אליו הוא מוצמד ולא מתפרס יפה על פני שני הטורים.
-
והנה הקוד להסרת עיצוב הערות ברצף
Sub הסר_עיצוב_הערות_ברצף() ' ' ' 'הסר רווחים קשיחים Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .text = "^s^s" .Replacement.text = "" .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchKashida = False .MatchDiacritics = False .MatchAlefHamza = False .MatchControl = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With Selection.Find.Execute Replace:=wdReplaceAll 'המר הערות סיום חזרה להערות שוליים ActiveDocument.endnotes.Convert 'אפס עיצוב מספרי הערות שוליים Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting Selection.Find.Replacement.style = ActiveDocument.Styles( _ "הפניה להערת שוליים") Selection.Find.Replacement.font.Superscript = True With Selection.Find .text = "^f" .Replacement.text = "^&" .Forward = True .Wrap = wdFindContinue .Format = True .MatchCase = False .MatchWholeWord = False .MatchKashida = False .MatchDiacritics = False .MatchAlefHamza = False .MatchControl = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With Selection.Find.Execute Replace:=wdReplaceAll Application.ScreenUpdating = False Dim x As Integer, fnote As footnote 'החל לולאה על כל ההערות For x = 1 To ActiveDocument.Footnotes.Count On Error Resume Next Set fnote = ActiveDocument.Footnotes(x) fnote.Range.Select Application.ScreenRefresh 'הסר מפריד עיצוב בהערה אם יש Selection.Collapse Direction:=wdCollapseEnd Selection.font.Reset Next x Application.ScreenUpdating = True 'RemoveSectionBreaks ActiveWindow.View.SeekView = wdSeekMainDocument Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .text = "^b" .Replacement.text = "" .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchKashida = False .MatchDiacritics = False .MatchAlefHamza = False .MatchControl = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With Selection.Find.Execute Replace:=wdReplaceAll End Sub
-
יש למישהו מאקרו מוכן עבור stylref - כותרות מתעדכנות?
-
אז הנה הקוד לכותרות צד אשמח לקבל משוב.
הקוד כולל כמה וכמה קודים:
Addstyle1 ו- 2 משמשים ליצירת סגנון ואינם מיועדים לשימוש בפני עצמם
AddFrame מוסיף כותרת צד ריקה ומחשבן ימין ושמאל במסמך עם שני טורים
InsertIntoFrame ממיר פיסקה\כותרת לכותרת צד
FormattingPane פותח חלון סגנונות כדי לעצב את הכותרות צד
AddStyle3 משמש לסגנון עבור עדכון או מחיקת החלונות ואינו משמש בפני עצמו
update לעדכון מיקום הכותרות במקרה שהפיסקה זזה מהטור הימני לשמאלי או הפוך
DeleteAll למחיקת כל הכותרות צד במסמךSub Addstyle() ' ' ' ' ActiveDocument.Styles.Add Name:="כותרת צד ימין", Type:=wdStyleTypeParagraph ActiveDocument.Styles("כותרת צד ימין").AutomaticallyUpdate = False With ActiveDocument.Styles("כותרת צד ימין").font .Name = "+גוף" .Size = 8 .Bold = False .Italic = False .Color = wdColorAutomatic .Superscript = False .Subscript = False .SizeBi = 8 .NameBi = "Arial" .BoldBi = False .ItalicBi = False End With With ActiveDocument.Styles("כותרת צד ימין").ParagraphFormat .Alignment = wdAlignParagraphLeft .ReadingOrder = wdReadingOrderRtl End With With ActiveDocument.Styles("כותרת צד ימין").Frame .TextWrap = True .WidthRule = wdFrameExact .Width = ActiveDocument.PageSetup.LeftMargin / 2.5 .HeightRule = wdFrameAuto .HorizontalPosition = wdFrameRight .RelativeHorizontalPosition = wdRelativeHorizontalPositionPage .VerticalPosition = CentimetersToPoints(0.04) .RelativeVerticalPosition = wdRelativeVerticalPositionParagraph .HorizontalDistanceFromText = CentimetersToPoints(0.32) .VerticalDistanceFromText = CentimetersToPoints(0) .LockAnchor = True End With End Sub Sub Addstyle2() ActiveDocument.Styles.Add Name:="כותרת צד שמאל", Type:=wdStyleTypeParagraph ActiveDocument.Styles("כותרת צד שמאל").AutomaticallyUpdate = False With ActiveDocument.Styles("כותרת צד שמאל").font .Name = "+גוף" .Size = 8 .Bold = False .Italic = False .Color = wdColorAutomatic .Superscript = False .Subscript = False .SizeBi = 8 .NameBi = "Arial" .BoldBi = False .ItalicBi = False End With With ActiveDocument.Styles("כותרת צד שמאל").ParagraphFormat .Alignment = wdAlignParagraphRight .ReadingOrder = wdReadingOrderRtl End With With ActiveDocument.Styles("כותרת צד שמאל").Frame .TextWrap = True .WidthRule = wdFrameExact .Width = ActiveDocument.PageSetup.LeftMargin / 2.5 .HeightRule = wdFrameAuto .HorizontalPosition = wdFrameLeft .RelativeHorizontalPosition = wdRelativeHorizontalPositionPage .VerticalPosition = CentimetersToPoints(0.04) .RelativeVerticalPosition = wdRelativeVerticalPositionParagraph .HorizontalDistanceFromText = CentimetersToPoints(0.32) .VerticalDistanceFromText = CentimetersToPoints(0) .LockAnchor = True End With End Sub Sub AddFrame() Dim rng As Range, styl As Style Set rng = Selection.Paragraphs(1).Range With rng .End = .Start .InsertAfter vbCr If ActiveDocument.PageSetup.PageWidth / 2 > .Information(wdHorizontalPositionRelativeToPage) Then For Each styl In ActiveDocument.Styles If styl.NameLocal = "כותרת צד שמאל" Then GoTo skp2 Next styl Call Addstyle2 skp2: .Style = ActiveDocument.Styles("כותרת צד שמאל") Else For Each styl In ActiveDocument.Styles If styl.NameLocal = "כותרת צד ימין" Then GoTo skp Next styl Call Addstyle skp: .Style = ActiveDocument.Styles("כותרת צד ימין") End If .Select End With End Sub Sub InsertIntoFrame() Dim styl As Style If ActiveDocument.PageSetup.PageWidth / 2 > Selection.Information(wdHorizontalPositionRelativeToPage) Then For Each styl In ActiveDocument.Styles If styl.NameLocal = "כותרת צד שמאל" Then GoTo skp2 Next styl Call Addstyle2 skp2: Selection.Style = ActiveDocument.Styles("כותרת צד שמאל") Else For Each styl In ActiveDocument.Styles If styl.NameLocal = "כותרת צד ימין" Then GoTo skp Next styl Call Addstyle skp: Selection.Style = ActiveDocument.Styles("כותרת צד ימין") End If End Sub Sub FormattingPane() Selection.Find.ClearFormatting Selection.Find.Style = ActiveDocument.Styles("כותרת צד ימין") Selection.Find.Replacement.ClearFormatting With Selection.Find .text = "" .Replacement.text = "" .Forward = True .Wrap = wdFindContinue .Format = True .MatchWildcards = False .Execute End With Application.Dialogs(wdDialogStyleManagement).Show End Sub Sub AddStyle3() Selection.GoTo What:=wdGoToPage, Which:=wdGoToPrevious, Count:=1 Dim styl As Style For Each styl In ActiveDocument.Styles If styl.NameLocal = "temp" Then GoTo skp Next styl ActiveDocument.Styles.Add Name:="temp", Type:=wdStyleTypeParagraph ActiveDocument.Styles("temp").AutomaticallyUpdate = False skp: End Sub Sub update() ' ' ' Dim styl As Style Call AddStyle3 Selection.Find.ClearFormatting Selection.Find.Style = ActiveDocument.Styles("כותרת צד ימין") Selection.Find.Replacement.ClearFormatting Selection.Find.Replacement.Style = ActiveDocument.Styles("temp") With Selection.Find .text = "" .Replacement.text = "" .Forward = True .Wrap = wdFindContinue .Format = True .MatchCase = False .MatchWholeWord = False .MatchKashida = False .MatchDiacritics = False .MatchAlefHamza = False .MatchControl = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With Selection.Find.Execute Replace:=wdReplaceAll Selection.Find.ClearFormatting Selection.Find.Style = ActiveDocument.Styles("כותרת צד שמאל") Selection.Find.Replacement.ClearFormatting Selection.Find.Replacement.Style = ActiveDocument.Styles("temp") With Selection.Find .text = "" .Replacement.text = "" .Forward = True .Wrap = wdFindContinue .Format = True .MatchCase = False .MatchWholeWord = False .MatchKashida = False .MatchDiacritics = False .MatchAlefHamza = False .MatchControl = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With Selection.Find.Execute Replace:=wdReplaceAll Selection.Find.ClearFormatting Selection.Find.Style = ActiveDocument.Styles("temp") Selection.Find.Replacement.ClearFormatting With Selection.Find .text = "" .Replacement.text = "" .Forward = True .Wrap = wdFindContinue .Format = True .MatchCase = False .MatchWholeWord = False .MatchKashida = False .MatchDiacritics = False .MatchAlefHamza = False .MatchControl = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False .Execute Do While .Found = True If ActiveDocument.PageSetup.PageWidth / 2 > Selection.Information(wdHorizontalPositionRelativeToPage) Then For Each styl In ActiveDocument.Styles If styl.NameLocal = "כותרת צד שמאל" Then GoTo skp2 Next styl Call Addstyle2 skp2: Selection.Style = ActiveDocument.Styles("כותרת צד שמאל") Else For Each styl In ActiveDocument.Styles If styl.NameLocal = "כותרת צד ימין" Then GoTo skp Next styl Call Addstyle skp: Selection.Style = ActiveDocument.Styles("כותרת צד ימין") End If Selection.GoTo What:=wdGoToPage, Which:=wdGoToPrevious, Count:=1 .Execute Loop End With End Sub Sub DeleteAll() Call AddStyle3 Selection.Find.ClearFormatting Selection.Find.Style = ActiveDocument.Styles("כותרת צד ימין") Selection.Find.Replacement.ClearFormatting Selection.Find.Replacement.Style = ActiveDocument.Styles("temp") With Selection.Find .text = "" .Replacement.text = "" .Forward = True .Wrap = wdFindContinue .Format = True .MatchCase = False .MatchWholeWord = False .MatchKashida = False .MatchDiacritics = False .MatchAlefHamza = False .MatchControl = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With Selection.Find.Execute Replace:=wdReplaceAll Selection.Find.ClearFormatting Selection.Find.Style = ActiveDocument.Styles("כותרת צד שמאל") Selection.Find.Replacement.ClearFormatting Selection.Find.Replacement.Style = ActiveDocument.Styles("temp") With Selection.Find .text = "" .Replacement.text = "" .Forward = True .Wrap = wdFindContinue .Format = True .MatchCase = False .MatchWholeWord = False .MatchKashida = False .MatchDiacritics = False .MatchAlefHamza = False .MatchControl = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With Selection.Find.Execute Replace:=wdReplaceAll Selection.Find.ClearFormatting Selection.Find.Style = ActiveDocument.Styles("temp") Selection.Find.Replacement.ClearFormatting With Selection.Find .text = "" .Replacement.text = "" .Forward = True .Wrap = wdFindContinue .Format = True .MatchCase = False .MatchWholeWord = False .MatchKashida = False .MatchDiacritics = False .MatchAlefHamza = False .MatchControl = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False .Execute End With WordBasic.SelectSimilarFormatting Selection.Delete End Sub
-
בעיה נוספת בהערות ברצף, לפעמים חלק מההערות שוליים פשוט "נעלמים"
עריכה: נפתרכמו"כ רציתי לשאול האם צריך לעשות (בעתיד) שיהיה אפשר לעצב מילה ראשונה בהערות שוליים ברצף?
-
@pcinfogmach כתב בשרשור עזרה בפיתוח התוסף לוורד - עיצוב ספרי קודש:
יש למישהו מאקרו מוכן עבור stylref - כותרות מתעדכנות?
רק לכותרת 2
Sub כותרת_2() ' ' כותרת_2 Macro ' ' Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:= _ "STYLEREF ""כותרת 2"" \l ", PreserveFormatting:=True End Sub
-
@pcinfogmach כתב בשרשור עזרה בפיתוח התוסף לוורד - עיצוב ספרי קודש:
כמו"כ רציתי לשאול האם צריך לעשות (בעתיד) שיהיה אפשר לעצב מילה ראשונה בהערות שוליים ברצף?
אם ישנה אפשרות לעצב את מספר ההערה, לדעתי לא.
-
@דאנציג כתב בשרשור עזרה בפיתוח התוסף לוורד - עיצוב ספרי קודש:
אם ישנה אפשרות לעצב את מספר ההערה,
זה אפשר בקלות על ידי חיפוש והחלפה. האם צריך לזה גם לחצן?
-
@pcinfogmach
אם זה מוגדר אחרת מכל המסמך, כן, אך אם לא... -
@pcinfogmach
אם כך התשובה היא שלא צריך. -
@pcinfogmach
מישהו יכול לכתוב לי מסודר מה צריך לפתח בשביל כותרות? -
@pcinfogmach
שאלה לגבי הגדלת והקטנת רווחים.
מה עדיף?
לעשות קוד שיגדיל את כל הרווחים ב 1 יותר ממה שהם או שיגדיל את כל הרווחים שיהיו באופן שווה.
השאלה היא האם מצוי שיש רווחים בגדלים שונים בפיסקה אחת? -
@pcinfogmach כתב בשרשור עזרה בפיתוח התוסף לוורד - עיצוב ספרי קודש:
מישהו יכול לכתוב לי מסודר מה צריך לפתח בשביל כותרות?
בשביל כותרות הכי פשוט שתסתכל במדריך של @תודה-רבה-4 כאן בפיסקא של כותרות עליונות.
יש לציין שבשונה ממה שהוא עושה, התוספים לוורד משתמשים בדרך כלל בטאבים, ושלוש טאבים לא צריך, כיון שיש בוורד מובנה כבר... -
@pcinfogmach כתב בשרשור עזרה בפיתוח התוסף לוורד - עיצוב ספרי קודש:
השאלה היא האם מצוי שיש רווחים בגדלים שונים בפיסקה אחת?
וודאי - מה שכתוב בסוגריים.
-
@צדיק-וטוב-לו-0
מה שכתוב בסוגריים יש לו רווחים אחרים משאר הטקסט? (גם ברמה של הגדרות הטקסט באפשרויות גופן?) -
@דאנציג כתב בשרשור עזרה בפיתוח התוסף לוורד - עיצוב ספרי קודש:
בשביל כותרות הכי פשוט שתסתכל במדריך של @תודה-רבה-4 כאן בפיסקא של כותרות עליונות.
אשמח אם תוכל למקד אותי קצת יותר כי רוב הדברים שם זה אפשרויות מובנות של וורד
-
@pcinfogmach טעות שלי בהבנת השאלה (חשבתי שהכוונה לגודל גופן).
איני יודע איך עובדים הרווחים בסוגריים, אבל אם הגופן יותר קטן, אולי זה משפיע גם לבי הרווח? אין לי מושג.