שיתוף | "מתעדכן" אוסף מאקרו לוורד - אינדקס מאקרו שימושי + הוראות חשובות.
-
@mfmf אם מוסיפים מעבר עמוד ידני, יש בעיות אחרות, לדוגמא שזה מוסיף שורה ריקה בכל פעם, ושורה זו עושה הרבה בעיות לכותרות המתחלפות אוטומטית, ולכן יש שני אפשרויות והבוחר יבחר, 1. לעשות מעבר עמוד לפני, שזה לא מוסיף כלום, והכל נעשה בצורה אוטומטית ורשמית בלי קומבינות, ולזכור או לסמן את החריגות. 2. להשתמש עם המאקרו שמוסיף מעבר עמוד ידנית, ולהוסיף במאקרו שימחוק את השורה הנוספת שנוספה.
המקרו שלי מוחק את השורה, אתה מוזמן לבדוק או לקראו את המקרו
-
@menajemmendel כתב בשיתוף | אוסף מאקרו לוורד - אינדקס מאקרו שימושי + הוראות חשובות:
הנה למעבר עמוד
עובד כדלהלן:
עומדים על הטקסט עם הסגנון שרוצים שיהיה בראש העמוד, ולוחצים על הכפתור של המקארו הוא בודק פעם הבא שמופיע ומוסיף לפניו מעבר עמוד,
הוא לא עושה את זה אוטומטי על כל המסמך (אפשר לעשות אבל אין לי זמן לזה כרגע, אולי בעתיד בעז''ה) אבל בכל אופן תוך כמה שניות גומרים את כל המסמך, (הרי ספר אם 100 פרקים אומר שמספיק ללחוץ 100 פעמים, שכ''א חצי שניה)Sub סגנון_נוכחי_לתחילת_עמוד() ' מחפש סגנון Selection.Find.ClearFormatting SIGNON = Selection.Style With Selection.Find .Text = "" .Style = SIGNON .Forward = True .Wrap = wdFindAsk End With Selection.Find.Execute 'אחרי שמצא עובר אחוריו ועושה מעבר Selection.MoveUp Unit:=wdParagraph, Count:=1 Selection.MoveLeft Unit:=wdCharacter, Count:=1 Selection.InsertBreak Type:=wdSectionBreakNextPage Selection.Delete Unit:=wdCharacter, Count:=1 Selection.MoveRight Unit:=wdCharacter, Count:=1 End Sub
@pcinfogmach @מניין @menajemmendel @דאנציג
כמה זה מסובך להוסיף כאן לולאה שתעבור אוטומטית על הסגנון שנבחר בכל המסמך?
באמת שזה בסדר גם בלי אבל שיהיה כבר דבר מושלם..@mfmf זה לא קשה בכללאבל אין לי זמן כרגע, אתם יודעים אחרי הכל ערב פסח, ואולי תשאלו אז איך יש לך זמן לענות פה על השאלה אומר לכם, שעיקר הקושי במקרו זה לא הכתיבה אלא התכנון בראש מה בדיוק יעשה
ולכן אגב אומר עצה טובה למי שלא יודע בעצמו לכתוב מאקרוים ומבקש בבמה חשובה זו או באחרת שמישהו יכתוב, שיעזור מאד אם בעת הבקשה יכתוב לדעתו, איך המקרו יעשה את זה, כלומר נכון ששלא יודע לכתוב את הפקודות, אבל שיכתוב איזה צעדים המחשב יעשה כדי לעשות את המקרו
תדמיינו שהמחשב הוא סוג של פועל סיני שלא יודע לקרוא עברית כדי לדעת מה כתוב בקובץ, אבל מבין אם תאמרו לו קודם לך לעמוד הא’ ואח’’כ תרד 3 שורות ותמחוק וכו’ וכו’וזה מאד מיקל על כותב המקרו, וגם אם אי אפשר לעשות מה שאתם בדיוק כתבתם נותן לו רעיונות איך לעשות
לדוגמא בא נאמר שאחד היה רוצה שיכתבו מאקרו לעשיית חלון בשורה שניה (אני יודע שיש לזה כבר מאקרוים אני רק אומר דוגמא) אזי נכון שהמבקש לא יודע שפת vba אבל יכול לומר אולי שילך לראש פסקה ירד שורה ויעתיק את המילה הראשונה בצבע לבן (אני יודע שזה לא באמת רעיון טוב מכמה סיבות) או אחר יאמר שאפשר לעשות תיבת טקסט ולהכניס את המילה הראשונה תוך התיבה וכו’ וכו’
בסדר הבנתם את הרעיון.לפעמים יכול גם כותב המאקרו עצמו להתייעץ אם משלא יודע לקודד, כי זה לא ענין של לקודד, זה עניין של הגיון טהור
תודה רבה -
@מניין אגדי! תודה רבה!!
יש מצב גם למאקרו דומה שיעשה מעבר עמוד לפי בחירת סגנון?
לדוגמא שיהיה אפשרות לבחור את סגנון 'פסקת רשימה' לדוגמה ויעבור אוטומטי בכל המסמך ויעשה לפניו מעבר עמוד.
בדרך כלל אנשים אוהבים שתחילת כל סימן יהיה בעמוד חדש, ובקובץ עם הרבה סימנים זה עבודת נמלים..
ייש"כ@mfmf כתב בשיתוף | אוסף מאקרו לוורד - אינדקס מאקרו שימושי + הוראות חשובות:
@מניין אגדי! תודה רבה!!
יש מצב גם למאקרו דומה שיעשה מעבר עמוד לפי בחירת סגנון?
לדוגמא שיהיה אפשרות לבחור את סגנון 'פסקת רשימה' לדוגמה ויעבור אוטומטי בכל המסמך ויעשה לפניו מעבר עמוד.
בדרך כלל אנשים אוהבים שתחילת כל סימן יהיה בעמוד חדש, ובקובץ עם הרבה סימנים זה עבודת נמלים..
ייש"כהצלחתי בסוף דרך ChatGPT ליצור קוד שמוסיף מעבר שורה ידני לפני שורה ממורכזת וכמובן בלי להוסיף שורה מיותרת. הקוד עובד על כל המסמך.
זה הקוד למי שמעוניין:Sub AddPageBreaksToCenteredParagraphs() 'Declare variables Dim para As Paragraph Dim rng As Range 'Set the range to the beginning of the first paragraph Set rng = ActiveDocument.Paragraphs(1).Range 'Loop through each paragraph in the document For Each para In ActiveDocument.Paragraphs 'Set the range to the current paragraph Set rng = para.Range 'Check if the paragraph is centered If rng.ParagraphFormat.Alignment = wdAlignParagraphCenter Then 'Move the range to the end of the previous paragraph rng.MoveStart wdCharacter, -1 Do While rng.Characters.Last = vbCr rng.MoveEnd wdCharacter, -1 Loop 'Add a page break before the paragraph rng.InsertBefore Chr(12) End If Next para End Sub
-
@pcinfogmach @mfmf
@NykUser
והנה הקוד שעובד (בהמשך בעז"ה אסדר את הקודים קצת יותר ויבוא הכול בתוך הפוסט באופן מסודרSub מרכוז_שורה_אחרונה_ניקיוזר() Set myRange = Selection.Range For i = 1 To myRange.Paragraphs.Count Set para = myRange.Paragraphs(i).Range If Not myRange.Paragraphs(i).Alignment = wdAlignParagraphCenter = False Then GoTo nxt Select Case para.ComputeStatistics(wdStatisticLines) Case 1: GoTo nxt: 'Case 2: GoTo nxt Case Else cntr: With para: .Collapse: .MoveUntil cset:=Chr(13): .Select: End With Application.ScreenRefresh With Selection: .HomeKey Unit:=wdLine wdt = .PageSetup.TextColumns(Dialogs(wdDialogFormatColumns).ColumnNo).Width / 2 With .Paragraphs.TabStops: .ClearAll: .Add Position:=(wdt), Alignment:=wdAlignTabCenter: End With If .Previous.Text <> Chr(11) And .Text <> Chr(13) Then .TypeText Text:=Chr(11) & vbTab End With End Select nxt: Next End Sub
@pcinfogmach תודה רבה על הקוד, אבל שאלה קטנה יש לי, למה צריך את המעבר שורה ידני, אותו דבר אפשר לעשות בלי המעבר שורה, בלי אנטר ובלי שום דבר, פשוט טאב ממורכז כמו שעשית
תודה
-
@pcinfogmach תודה רבה על הקוד, אבל שאלה קטנה יש לי, למה צריך את המעבר שורה ידני, אותו דבר אפשר לעשות בלי המעבר שורה, בלי אנטר ובלי שום דבר, פשוט טאב ממורכז כמו שעשית
תודה
@menajemmendel כתב בשיתוף | אוסף מאקרו לוורד - אינדקס מאקרו שימושי + הוראות חשובות:
@pcinfogmach תודה רבה על הקוד, אבל שאלה קטנה יש לי, למה צריך את המעבר שורה ידני, אותו דבר אפשר לעשות בלי המעבר שורה, בלי אנטר ובלי שום דבר, פשוט טאב ממורכז כמו שעשית
תודה
אולי תמקד אותי על איזה קוד מדובר?
-
@menajemmendel כתב בשיתוף | אוסף מאקרו לוורד - אינדקס מאקרו שימושי + הוראות חשובות:
@pcinfogmach תודה רבה על הקוד, אבל שאלה קטנה יש לי, למה צריך את המעבר שורה ידני, אותו דבר אפשר לעשות בלי המעבר שורה, בלי אנטר ובלי שום דבר, פשוט טאב ממורכז כמו שעשית
תודה
אולי תמקד אותי על איזה קוד מדובר?
-
@menajemmendel כתב בשיתוף | אוסף מאקרו לוורד - אינדקס מאקרו שימושי + הוראות חשובות:
@pcinfogmach תודה רבה על הקוד, אבל שאלה קטנה יש לי, למה צריך את המעבר שורה ידני, אותו דבר אפשר לעשות בלי המעבר שורה, בלי אנטר ובלי שום דבר, פשוט טאב ממורכז כמו שעשית
תודה
אולי תמקד אותי על איזה קוד מדובר?
@pcinfogmach סליחה שלא פירטתי, התכוונתי על הקוד של מרכוז שורה אחרונה
ידיעה חשובה: לא פירטתי כי אפשר לראות על איזה משפט שלך כתבתי את שאלתי, עם מעבירים את העכבר מעל שם ה''נשאל'' ליד שם ה''שואל''
-
@pcinfogmach תודה רבה על הקוד, אבל שאלה קטנה יש לי, למה צריך את המעבר שורה ידני, אותו דבר אפשר לעשות בלי המעבר שורה, בלי אנטר ובלי שום דבר, פשוט טאב ממורכז כמו שעשית
תודה
@menajemmendel כתב בשיתוף | אוסף מאקרו לוורד - אינדקס מאקרו שימושי + הוראות חשובות:
@pcinfogmach תודה רבה על הקוד, אבל שאלה קטנה יש לי, למה צריך את המעבר שורה ידני, אותו דבר אפשר לעשות בלי המעבר שורה, בלי אנטר ובלי שום דבר, פשוט טאב ממורכז כמו שעשית
תודה
המעבר שורה בא לחסוך בעיה כאשר לפעמים הטאב בעצם קופץ אוטמטית לסוף השורה הקודמת. מה שקורה כאשר יש רק קצת מילים בשורה הראשונה ובפרט כאשר הטקסט מיושר לשני הצדדים.
אפשר בעצם להוסיף קוד שימחק את המעבר שורה אחרי ההשמה של הטאב אבל העדפתי להשאיר את הדברים כך כיון שקוד זה עלול למחוק מעברי שורה שהמשתמש השים בעצמו.
כללו של דבר אין מאקרו מושלם וכל אחד יבחר לו מה שמתאים לו, כמו"כ יש עוד שיטות איך לעשות מירכוז שורה אחרונה וכמו שהבאתי באחד הפוסטים כאן בתוך התבנית עיצוב ספרי קודש.
-
@menajemmendel כתב בשיתוף | אוסף מאקרו לוורד - אינדקס מאקרו שימושי + הוראות חשובות:
@pcinfogmach תודה רבה על הקוד, אבל שאלה קטנה יש לי, למה צריך את המעבר שורה ידני, אותו דבר אפשר לעשות בלי המעבר שורה, בלי אנטר ובלי שום דבר, פשוט טאב ממורכז כמו שעשית
תודה
המעבר שורה בא לחסוך בעיה כאשר לפעמים הטאב בעצם קופץ אוטמטית לסוף השורה הקודמת. מה שקורה כאשר יש רק קצת מילים בשורה הראשונה ובפרט כאשר הטקסט מיושר לשני הצדדים.
אפשר בעצם להוסיף קוד שימחק את המעבר שורה אחרי ההשמה של הטאב אבל העדפתי להשאיר את הדברים כך כיון שקוד זה עלול למחוק מעברי שורה שהמשתמש השים בעצמו.
כללו של דבר אין מאקרו מושלם וכל אחד יבחר לו מה שמתאים לו, כמו"כ יש עוד שיטות איך לעשות מירכוז שורה אחרונה וכמו שהבאתי באחד הפוסטים כאן בתוך התבנית עיצוב ספרי קודש.
@pcinfogmach לא הבנתי איך יכול להיות שאתה תשים טאב בשורה מסויימת, ויעלה למעלה, הרי הטאב הוא לא אות כל שהיא שאם יש מספיק מקום משבילה יכתוב אותה למעלה, נסיתי מה שאתה אומר ואל מצאתי מקרה כזה, אבל אם ראיתה כזה מקרה אשמח שתראה לי אותו כי זה לא נשמע כ''כ הגיוני
-
@pcinfogmach לא הבנתי איך יכול להיות שאתה תשים טאב בשורה מסויימת, ויעלה למעלה, הרי הטאב הוא לא אות כל שהיא שאם יש מספיק מקום משבילה יכתוב אותה למעלה, נסיתי מה שאתה אומר ואל מצאתי מקרה כזה, אבל אם ראיתה כזה מקרה אשמח שתראה לי אותו כי זה לא נשמע כ''כ הגיוני
@menajemmendel לכאורה זה תלוי בגרסאות של אופיס
-
@pcinfogmach לא הבנתי איך יכול להיות שאתה תשים טאב בשורה מסויימת, ויעלה למעלה, הרי הטאב הוא לא אות כל שהיא שאם יש מספיק מקום משבילה יכתוב אותה למעלה, נסיתי מה שאתה אומר ואל מצאתי מקרה כזה, אבל אם ראיתה כזה מקרה אשמח שתראה לי אותו כי זה לא נשמע כ''כ הגיוני
-
@pcinfogmach
נראה לי שהטעות שלך הוא שעשית את הטאב בסוף השורה הראשונה, ואתה צריך לעשות אותו בתחילה השורה השניה,
תנסה ותאמר לי -
@pcinfogmach
נראה לי שהטעות שלך הוא שעשית את הטאב בסוף השורה הראשונה, ואתה צריך לעשות אותו בתחילה השורה השניה,
תנסה ותאמר לי@menajemmendel
נראה שאתה צודק
אצטרך לעשות בדיקות יותר מאסיביות בהמשך.
למעשה יש עוד סיבה למעבר שורה כדי למנוע כפילויות. אבל זה פתיר בצורות אחרות. -
@pcinfogmach
נראה לי שהטעות שלך הוא שעשית את הטאב בסוף השורה הראשונה, ואתה צריך לעשות אותו בתחילה השורה השניה,
תנסה ותאמר לי@menajemmendel
עכשיו חשבתי על בעיה אחרת - מצד מחיקת המירכוז.
כי כרגע יש סימן זיהוי לטאבים של המירכוז לעומת טאבים אחרים - כלומר המחיקה חלה רק על טאבים ששיכים למירכוז. אבל בלי הוספת המעבר שורה אין שום סימן היכר והמחיקה תמחק את כל הטאבים גם מה שאינני רוצה שימחק.
פתרון אפשרי שצריך לבדוק אותו: שמאקרו המחיקה ימחק רק טאבים שבשורה האחרונה שבפיסקה.מה אתם אומרים על כל זה?
-
@pcinfogmach תודה רבה על הקוד, אבל שאלה קטנה יש לי, למה צריך את המעבר שורה ידני, אותו דבר אפשר לעשות בלי המעבר שורה, בלי אנטר ובלי שום דבר, פשוט טאב ממורכז כמו שעשית
תודה
@menajemmendel כתב בשיתוף | אוסף מאקרו לוורד - אינדקס מאקרו שימושי + הוראות חשובות:
@pcinfogmach תודה רבה על הקוד, אבל שאלה קטנה יש לי, למה צריך את המעבר שורה ידני, אותו דבר אפשר לעשות בלי המעבר שורה, בלי אנטר ובלי שום דבר, פשוט טאב ממורכז כמו שעשית
תודה
מצו"ב הקוד המעודכן לפי ההצעה שלך
Option Explicit Sub מירכוז_שורה_אחרונה_בכל_הפסקאות_במסמך() ' ' ' Dim response As Integer response = MsgBox("שים לב, פקודה זו מהווה אילתור בלבד ומיועדת לשימוש לפני הדפסה." _ & vbNewLine & vbNewLine & "במקרה שערכתם שינויים במסמך תוכלו להריץ שוב פקודה זו" & vbNewLine & "בכדי לתקן את העיצוב.", _ vbInformation + vbOKCancel + vbMsgBoxRight + vbMsgBoxRtlReading, "מירכוז שורה אחרונה בפיסקה") If response = vbCancel Then Exit Sub Dim exclude2Lines As Boolean exclude2Lines = MsgBox("האם ברצונך לכלול פיסקאות עם 2 שורות?", vbQuestion + vbYesNo + vbMsgBoxRight + vbMsgBoxRtlReading, "מרכוז שורה אחרונה") = vbNo Call מחיקת_מרכוז_שורה_אחרונה_מכל_המסמך Dim para As Paragraph Dim middlePosition As Double For Each para In ActiveDocument.Paragraphs para.Range.Select 'exclusions If para.Range.ComputeStatistics(wdStatisticLines) > 1 Then If para.Range.ParagraphFormat.Alignment <> wdAlignParagraphCenter Then If Not exclude2Lines Or para.Range.ComputeStatistics(wdStatisticLines) <> 2 Then ' Move the cursor to end of paragraph. Selection.MoveStartUntil vbCrLf, wdForward 'add costume tabstop middlePosition = Selection.PageSetup.TextColumns(Dialogs(wdDialogFormatColumns).ColumnNo).Width / 2 With Selection.ParagraphFormat.TabStops .ClearAll .Add Position:=middlePosition, _ Alignment:=wdAlignTabCenter End With ' Move the cursor to the beginning of the last line in the paragraph. Selection.Move wdLine, -1 ' Check if the line already starts with a tab. If InStr(1, Selection.Text, vbTab) <> 1 Then ' Add a tab to the beginning of the line. Selection.TypeText vbTab End If End If End If End If Next End Sub Sub מירכוז_שורה_אחרונה_בפיסקאות_שנבחרו() ' ' ' Dim response As Integer response = MsgBox("שים לב, פקודה זו מהווה אילתור בלבד ומיועדת לשימוש לפני הדפסה." _ & vbNewLine & vbNewLine & "במקרה שערכתם שינויים במסמך תוכלו להריץ שוב פקודה זו" & vbNewLine & "בכדי לתקן את העיצוב.", _ vbInformation + vbOKCancel + vbMsgBoxRight + vbMsgBoxRtlReading, "מירכוז שורה אחרונה בפיסקה") If response = vbCancel Then Exit Sub Dim slctd As Range Set slctd = Selection.Range Dim exclude2Lines As Boolean exclude2Lines = MsgBox("האם ברצונך לכלול פיסקאות עם 2 שורות?", vbQuestion + vbYesNo + vbMsgBoxRight + vbMsgBoxRtlReading, "מרכוז שורה אחרונה") = vbNo Call הסרת_מרכוז_שורה_אחרונה_בפיסקאות_שנבחרו Dim para As Paragraph Dim middlePosition As Double For Each para In slctd.Paragraphs para.Range.Select 'exclusions If para.Range.ComputeStatistics(wdStatisticLines) > 1 Then If para.Range.ParagraphFormat.Alignment <> wdAlignParagraphCenter Then If Not exclude2Lines Or para.Range.ComputeStatistics(wdStatisticLines) <> 2 Then ' Move the cursor to end of paragraph. Selection.MoveStartUntil vbCrLf, wdForward 'add costume tabstop middlePosition = Selection.PageSetup.TextColumns(Dialogs(wdDialogFormatColumns).ColumnNo).Width / 2 With Selection.ParagraphFormat.TabStops .ClearAll .Add Position:=middlePosition, _ Alignment:=wdAlignTabCenter End With ' Move the cursor to the beginning of the last line in the paragraph. Selection.Move wdLine, -1 ' Check if the line already starts with a tab. If InStr(1, Selection.Text, vbTab) <> 1 Then ' Add a tab to the beginning of the line. Selection.TypeText vbTab End If End If End If End If Next End Sub Sub מחיקת_מרכוז_שורה_אחרונה_מכל_המסמך() Dim para As Paragraph Dim middlePosition As Double For Each para In ActiveDocument.Paragraphs If para.Range.ComputeStatistics(wdStatisticLines) > 1 Then If para.Range.ParagraphFormat.Alignment <> wdAlignParagraphCenter Then para.Range.Select ' Move the cursor to the beginning of the last line in the paragraph. Selection.MoveStartUntil vbCrLf, wdForward Selection.Move wdLine, -1 ' Check if the line already starts with a tab. If Not InStr(1, Selection.Text, vbTab) <> 1 Then ' delete tab in beginning of the line. Selection.Delete Unit:=wdCharacter, Count:=1 End If End If End If Next End Sub Sub הסרת_מרכוז_שורה_אחרונה_בפיסקאות_שנבחרו() Dim para As Paragraph Dim middlePosition As Double Dim slctd As Range Set slctd = Selection.Range For Each para In slctd.Paragraphs If para.Range.ComputeStatistics(wdStatisticLines) > 1 Then If para.Range.ParagraphFormat.Alignment <> wdAlignParagraphCenter Then para.Range.Select ' Move the cursor to the beginning of the last line in the paragraph. Selection.MoveStartUntil vbCrLf, wdForward Selection.Move wdLine, -1 ' Check if the line already starts with a tab. If Not InStr(1, Selection.Text, vbTab) <> 1 Then ' delete tab in beginning of the line. Selection.Delete Unit:=wdCharacter, Count:=1 End If End If End If Next End Sub
-
@menajemmendel
עכשיו חשבתי על בעיה אחרת - מצד מחיקת המירכוז.
כי כרגע יש סימן זיהוי לטאבים של המירכוז לעומת טאבים אחרים - כלומר המחיקה חלה רק על טאבים ששיכים למירכוז. אבל בלי הוספת המעבר שורה אין שום סימן היכר והמחיקה תמחק את כל הטאבים גם מה שאינני רוצה שימחק.
פתרון אפשרי שצריך לבדוק אותו: שמאקרו המחיקה ימחק רק טאבים שבשורה האחרונה שבפיסקה.מה אתם אומרים על כל זה?
@pcinfogmach יש קצת סימן היכר, שהם לא טאבים רגילים אלא הם בדיוק באמצע הטור, אבל זה אינו מוכרח כי יכול להיות שיש אחרים גם באמצע, אז אולי באמת זה טוב עם המעבר שורה ידני,
אם אין שום חסרון במעבר שורה, אזי הוא בסדר, עיקר השאלה שלי, היה בדרך לימוד, וגם שאני לא אוהב שיהיה דברים מיותרים בקודים, אבל אם יש צורך אז אדרבה -
@menajemmendel כתב בשיתוף | אוסף מאקרו לוורד - אינדקס מאקרו שימושי + הוראות חשובות:
@pcinfogmach תודה רבה על הקוד, אבל שאלה קטנה יש לי, למה צריך את המעבר שורה ידני, אותו דבר אפשר לעשות בלי המעבר שורה, בלי אנטר ובלי שום דבר, פשוט טאב ממורכז כמו שעשית
תודה
מצו"ב הקוד המעודכן לפי ההצעה שלך
Option Explicit Sub מירכוז_שורה_אחרונה_בכל_הפסקאות_במסמך() ' ' ' Dim response As Integer response = MsgBox("שים לב, פקודה זו מהווה אילתור בלבד ומיועדת לשימוש לפני הדפסה." _ & vbNewLine & vbNewLine & "במקרה שערכתם שינויים במסמך תוכלו להריץ שוב פקודה זו" & vbNewLine & "בכדי לתקן את העיצוב.", _ vbInformation + vbOKCancel + vbMsgBoxRight + vbMsgBoxRtlReading, "מירכוז שורה אחרונה בפיסקה") If response = vbCancel Then Exit Sub Dim exclude2Lines As Boolean exclude2Lines = MsgBox("האם ברצונך לכלול פיסקאות עם 2 שורות?", vbQuestion + vbYesNo + vbMsgBoxRight + vbMsgBoxRtlReading, "מרכוז שורה אחרונה") = vbNo Call מחיקת_מרכוז_שורה_אחרונה_מכל_המסמך Dim para As Paragraph Dim middlePosition As Double For Each para In ActiveDocument.Paragraphs para.Range.Select 'exclusions If para.Range.ComputeStatistics(wdStatisticLines) > 1 Then If para.Range.ParagraphFormat.Alignment <> wdAlignParagraphCenter Then If Not exclude2Lines Or para.Range.ComputeStatistics(wdStatisticLines) <> 2 Then ' Move the cursor to end of paragraph. Selection.MoveStartUntil vbCrLf, wdForward 'add costume tabstop middlePosition = Selection.PageSetup.TextColumns(Dialogs(wdDialogFormatColumns).ColumnNo).Width / 2 With Selection.ParagraphFormat.TabStops .ClearAll .Add Position:=middlePosition, _ Alignment:=wdAlignTabCenter End With ' Move the cursor to the beginning of the last line in the paragraph. Selection.Move wdLine, -1 ' Check if the line already starts with a tab. If InStr(1, Selection.Text, vbTab) <> 1 Then ' Add a tab to the beginning of the line. Selection.TypeText vbTab End If End If End If End If Next End Sub Sub מירכוז_שורה_אחרונה_בפיסקאות_שנבחרו() ' ' ' Dim response As Integer response = MsgBox("שים לב, פקודה זו מהווה אילתור בלבד ומיועדת לשימוש לפני הדפסה." _ & vbNewLine & vbNewLine & "במקרה שערכתם שינויים במסמך תוכלו להריץ שוב פקודה זו" & vbNewLine & "בכדי לתקן את העיצוב.", _ vbInformation + vbOKCancel + vbMsgBoxRight + vbMsgBoxRtlReading, "מירכוז שורה אחרונה בפיסקה") If response = vbCancel Then Exit Sub Dim slctd As Range Set slctd = Selection.Range Dim exclude2Lines As Boolean exclude2Lines = MsgBox("האם ברצונך לכלול פיסקאות עם 2 שורות?", vbQuestion + vbYesNo + vbMsgBoxRight + vbMsgBoxRtlReading, "מרכוז שורה אחרונה") = vbNo Call הסרת_מרכוז_שורה_אחרונה_בפיסקאות_שנבחרו Dim para As Paragraph Dim middlePosition As Double For Each para In slctd.Paragraphs para.Range.Select 'exclusions If para.Range.ComputeStatistics(wdStatisticLines) > 1 Then If para.Range.ParagraphFormat.Alignment <> wdAlignParagraphCenter Then If Not exclude2Lines Or para.Range.ComputeStatistics(wdStatisticLines) <> 2 Then ' Move the cursor to end of paragraph. Selection.MoveStartUntil vbCrLf, wdForward 'add costume tabstop middlePosition = Selection.PageSetup.TextColumns(Dialogs(wdDialogFormatColumns).ColumnNo).Width / 2 With Selection.ParagraphFormat.TabStops .ClearAll .Add Position:=middlePosition, _ Alignment:=wdAlignTabCenter End With ' Move the cursor to the beginning of the last line in the paragraph. Selection.Move wdLine, -1 ' Check if the line already starts with a tab. If InStr(1, Selection.Text, vbTab) <> 1 Then ' Add a tab to the beginning of the line. Selection.TypeText vbTab End If End If End If End If Next End Sub Sub מחיקת_מרכוז_שורה_אחרונה_מכל_המסמך() Dim para As Paragraph Dim middlePosition As Double For Each para In ActiveDocument.Paragraphs If para.Range.ComputeStatistics(wdStatisticLines) > 1 Then If para.Range.ParagraphFormat.Alignment <> wdAlignParagraphCenter Then para.Range.Select ' Move the cursor to the beginning of the last line in the paragraph. Selection.MoveStartUntil vbCrLf, wdForward Selection.Move wdLine, -1 ' Check if the line already starts with a tab. If Not InStr(1, Selection.Text, vbTab) <> 1 Then ' delete tab in beginning of the line. Selection.Delete Unit:=wdCharacter, Count:=1 End If End If End If Next End Sub Sub הסרת_מרכוז_שורה_אחרונה_בפיסקאות_שנבחרו() Dim para As Paragraph Dim middlePosition As Double Dim slctd As Range Set slctd = Selection.Range For Each para In slctd.Paragraphs If para.Range.ComputeStatistics(wdStatisticLines) > 1 Then If para.Range.ParagraphFormat.Alignment <> wdAlignParagraphCenter Then para.Range.Select ' Move the cursor to the beginning of the last line in the paragraph. Selection.MoveStartUntil vbCrLf, wdForward Selection.Move wdLine, -1 ' Check if the line already starts with a tab. If Not InStr(1, Selection.Text, vbTab) <> 1 Then ' delete tab in beginning of the line. Selection.Delete Unit:=wdCharacter, Count:=1 End If End If End If Next End Sub
@pcinfogmach אני מקווה שהצעה שלי אכן הועילה ולא סתם הטרחתי אותך בחינם.
עכשיו שראיתי את הקוד החדש יש לי שאלה, ואני לא מתכון לשגע אתך סתם ''למה ככה ולא ככה וכו''' אני באמת שואל לדעת אם יש בזה משהו, אני קצת חדש בVBA, ושואל לדעתלמה יש חלקים בקוד שכתובים בצורה הפוכה (מסורבלת לדעתי) לדגומא החלק הזה:
' Check if the line already starts with a tab. If Not Left(Selection.Text, 1) <> vbTab Then
למה לא לכתוב ישר:
If Left(Selection.Text, 1) = vbTab Then
הוא כמו שאני אגיד לך:
כי לא אכחד ממך שדעתי אינה תואמת בהצהרה שפחות ברור אם לא נכתוב בצורה השניה.
כלומר, שאני חושב שיותר קל בצורה זו.האמת שאני לא יודע אם אתה כתבת את הקוד, או ניקיוזר, אז לא יודע למי לפנות בשאלה, בכל אופן תודה רבה על כל השקעה
-
@pcinfogmach אני מקווה שהצעה שלי אכן הועילה ולא סתם הטרחתי אותך בחינם.
עכשיו שראיתי את הקוד החדש יש לי שאלה, ואני לא מתכון לשגע אתך סתם ''למה ככה ולא ככה וכו''' אני באמת שואל לדעת אם יש בזה משהו, אני קצת חדש בVBA, ושואל לדעתלמה יש חלקים בקוד שכתובים בצורה הפוכה (מסורבלת לדעתי) לדגומא החלק הזה:
' Check if the line already starts with a tab. If Not Left(Selection.Text, 1) <> vbTab Then
למה לא לכתוב ישר:
If Left(Selection.Text, 1) = vbTab Then
הוא כמו שאני אגיד לך:
כי לא אכחד ממך שדעתי אינה תואמת בהצהרה שפחות ברור אם לא נכתוב בצורה השניה.
כלומר, שאני חושב שיותר קל בצורה זו.האמת שאני לא יודע אם אתה כתבת את הקוד, או ניקיוזר, אז לא יודע למי לפנות בשאלה, בכל אופן תודה רבה על כל השקעה
@menajemmendel
ניקיוזר כתב במקור אני שיפצתי למעשה הוא מבין במאקרו הרבה יותר ממני
הסיבה להגדרה בשלילה אינה ידועה לי רק שהיא מאוד שימושית כאשר עושים החרגות כי לפעמים ההגדרה שאינה בשלילה לא תפעל שום החרגה. וכן להיפך לפעמים כשנראה שהגדרה בשלילה תעשה החרגה היא לא תעשה כלום ורק הגדרה חיובית תעשה החרגה.
אולי יבוא מישהו ויסביר לשנינו למה זה ככה.
למעשה הכלל בקידוד הוא עשה מה שעובד הכי טוב ואח"כ מה שמובן הכי טוב.(אגב עידכנתי את הקוד מעט מסיבות שונות עיין שוב בפוסט הקודם בשינויים שעשיתי שם)
-
בס"ד
פוסט מסודר עבור העלאת מאקרואים לוורד
הנחיות עבור עורכי פוסטים
כל מי שיכול להעלות מאקרואים לתועלת הציבור נא להעלות כאן
תגובות לנושא זה יש לכתוב כאן בשרשור התגובות כמו"כ ניתן למצוא הוראות נוספות להכנת מאקרו בשרשור התגובות.שים לב! שרשור זה נועד עבור המשתמש הפשוט לכן אבקש מכולם נא לא להעלות כאן קודים אלא רק מאקרו מוכן בתוך תבנית - כדי שכולם יוכלו להשתמש בהם בקלות. כפי שיפורט להלן, מאוד קל להתקין בוורד מאקרו מוכן באופן זה.
להוראות כיצד להכין תבנית עם מאקרו לחץ כאן
מי שיכול אבקש ממנו שיכין את המאקרו בתוך קובץ לחילוץ עצמי שיחלץ את הקבצים למקום הראוי%AppData%/Microsoft/Word/STARTUP
עיין כאן להוראות איך מכינים קובץ לחילוץ עצמי
תוכן העניינים
תוכן העניינים אינו כולל הכול ומעדכן מידי פעם.
- מאקרו יישור טורים בוורד
- מאקרו תיקון שגיאות נפוצות
- תבנית מחיקת פסקאות ריקות ורווח לפני פסקא
- הערות ברצף
- שילוב של כמה מאקרוים: (הקטנת והגדלת סוגריים על כל המסמך. עריכת הפניות מקושרות. עדכון הפניות מקושרות. מעבר בין מקטעים. המרת הפניות לתג).
- סימון שגיאה בטקסט על ידי ..?
- תיקון שגיאות מנצפך ועוד שיבושים נוספים
- עיצוב ספרי קודש
- עיצוב אוטומטי של ההערות שוליים כנהוג ברוב ספרי הקודש
- חיפוש והחלפה פרטניים
- עיצוב כל כותרות בטור אחד במסמך של שני טורים
- מעבר עמוד לפני כותרת
- מאקרו שמוסיף שדה למיספור אוטומטי (שימושי מאוד לספר עם סימנים רבים, ובכל סימן יש סעיפים)
- מאקרו מעבר מהערה למסמך ולהיפך, וכן מאקרו ליצירת אינדקס בקלות
- קוד VBA להמיר בוורד ממספרים לאותיות, רגיל ובלשון נקייה.
- שינוי מרווח טורים רק בהערות שוליים
- החלפת שדה נבחר למספור אוטומטי אותיות
- המרת מספרים לאותיות עם לשון נקיה
- חיפוש ותיקון סוגריים לא סגורים
- תיקון סוגריים גירסה 2 - מאקרו לגיבוי התבנית normal (הגדרות ברירת המחדל)
- חילוץ טקסט - מפרק את כל ההערות שבמסמך [בלון, שוליים, הערות] למסמכים נפרדים, ומשאיר הפניות במסמך המקורי, עיצוב לבחירת המשתמש.
- מאקרו לוורד להצגת כל קיצורי המקשים המותאמים אישית: - והתבנית המוכנה כאן: https://mitmachim.top/post/641294
- החלפת אות, מילה, או פיסקה עם הסמוכה לה
- הערות שולים - מספור בעברית עד 1200
- קבלת הקוד של התיו המסומן לתורך שימוש בחיפוש והחלפה
- פתרון באג שצג
- המרה הוספה ועריכה שדה מספור אוטומטי
- מספור עברי מעל שצב
- חיפוש והחלפה באבני בניין
- מאקרו הפניה מקושרת אינדקס תצוגת טויטה.
- מאקרו שצובע את המילה הראשונה של כל עמוד בירוק ואת המילה האחרונה באדום, נצרך מאוד לתיקונים לאחר עימוד כדי לוודא שלא קפצו מילים לעמוד הבא.
- מאקרו הדפסה לפי רשימה
- מאקרו להסתרת טקסט
- הפניה מקושרת ממסמך למסמך
- הוספת עיטור לפני או אחרי כותרת
- מאקרו צמצום מסמך בוורד
- מאקרו איזון שורה אחרונה - מילה אחרונה תלושה
הוראות להתקנת מאקרו בקלות
להוראות כלליות לגבי מאקרו ניתן לעיין כאן
כדי להתקין מאקרו בוורד בקלות
-
יש להוריד את התבנית הרצויה (תבניות יובאו בפוסטים בהמשך השרשור)
-
יש להעתיק את התבנית אל תוך התיקייה הזו:
AppData%\Microsoft\Word\STARTUP%
(אפשר ללחוץ על "מקש-חלונות + R" ולהזין שם את הכתובת הנ"ל)
- רוצים להסיר מאקרו? פשוט מחקו אותו מהתיקייה הנ"ל.
אפשרות התקנה חילופית:
יש לפתוח את המאקרו ולאחמ"כ יש לעבור ללשונית 'תצוגה', בצד שמאל יש ללחוץ על 'פקודות מאקרו', בחלון שנפתח יש ללחוץ בצד שמאל על 'סדרן' ולהעתיק את המאקרו מהחלונית הימנית לשמאלית, להעברת המאקרו לתבנית נורמל (Normal).
כדי למחוק מאקרו שהותקן בצורה זו יש לבחור במחק שבחלון זה.-
כעת המאקרו שבתבנית יהיו זמינים לכם בכל מסמך שתרצו
-
כדי להריץ מאקרו יש להיכנס לכרטיססית תצוגה בוורד > פקודות מאקרו > הצג פקודות מאקרו ( או ללחוץ ALT +F8).
כעת בחרו במאקרו המתאים ולחצו על הפעל.
איך ליצור קיצורי דרך למאקרו בקלות
אפשר גם ליצור קיצורי דרך (קיצורי מקשים או לחצן) עבור כל מאקרו שתירצו וכדלהלן:
כדי ליצור קיצור מקשים:
היכנס לקובץ> אפשרויות> התאמה אישית של רצועת הכלים לחץ על 'קיצורי המקלדת' שבתחתית החלון מצד ימין.
או: לחץ על החץ הקטן שבסרגל הכלים לגישה מהירה > אפשרויות> התאמה אישית של רצועת הכלים לחץ על 'קיצורי המקלדת' שבתחתית החלון מצד ימין.כעת יש לגלול ב'קטגוריות' לתחתית החלון ולסמן את פקודות מאקרו - כאן תוכלו להזין איזה קיצור מקשים שתירצו רק שימו לב לכיתוב שמופיע תחת החלון בצד ימין מוקצה כרגע ל: הוי אומר שהקיצור שבחרתם כבר מוקצה למשהו אחר ועלכים להחליט אם לדרוס הקצאה זו או לא
כדי ליצור לחצן:
היכנסו כנ"ל אל אפשרויות וורד
כעת עליכם להחליט אם ליצור לחצן בסרגל הכלים לגישה מהירה, או ליצור סרגל חדש ב 'התאמה אישית של רצועת הכלים' (או אולי סתם להוסיף את המאקרו לסרגל קיים).
החלטתם!
כעת תחת 'בחר פקודות מתוך' בחרו ב'פקודות מאקרו' והוסיפו את הפקודות שברצונכם ליצור להם לחצן על ידי 'הוסף' שבמרכז החלון.
אם ברצונכם שהלחצן יהיה מעוצב קצת - סמנו את לחצן המאקרו שהוספתם ולחצו על 'שינוי' (בצד ימין למטה)בהצלחה!
מאקרו מעבר מהערה למסמך ולהיפך, וכן מאקרו ליצירת אינדקס בקלות
מעבר-מהערה-למסמך ואינדקס.dotm
בהצלחה -
בס"ד
פוסט מסודר עבור העלאת מאקרואים לוורד
הנחיות עבור עורכי פוסטים
כל מי שיכול להעלות מאקרואים לתועלת הציבור נא להעלות כאן
תגובות לנושא זה יש לכתוב כאן בשרשור התגובות כמו"כ ניתן למצוא הוראות נוספות להכנת מאקרו בשרשור התגובות.שים לב! שרשור זה נועד עבור המשתמש הפשוט לכן אבקש מכולם נא לא להעלות כאן קודים אלא רק מאקרו מוכן בתוך תבנית - כדי שכולם יוכלו להשתמש בהם בקלות. כפי שיפורט להלן, מאוד קל להתקין בוורד מאקרו מוכן באופן זה.
להוראות כיצד להכין תבנית עם מאקרו לחץ כאן
מי שיכול אבקש ממנו שיכין את המאקרו בתוך קובץ לחילוץ עצמי שיחלץ את הקבצים למקום הראוי%AppData%/Microsoft/Word/STARTUP
עיין כאן להוראות איך מכינים קובץ לחילוץ עצמי
תוכן העניינים
תוכן העניינים אינו כולל הכול ומעדכן מידי פעם.
- מאקרו יישור טורים בוורד
- מאקרו תיקון שגיאות נפוצות
- תבנית מחיקת פסקאות ריקות ורווח לפני פסקא
- הערות ברצף
- שילוב של כמה מאקרוים: (הקטנת והגדלת סוגריים על כל המסמך. עריכת הפניות מקושרות. עדכון הפניות מקושרות. מעבר בין מקטעים. המרת הפניות לתג).
- סימון שגיאה בטקסט על ידי ..?
- תיקון שגיאות מנצפך ועוד שיבושים נוספים
- עיצוב ספרי קודש
- עיצוב אוטומטי של ההערות שוליים כנהוג ברוב ספרי הקודש
- חיפוש והחלפה פרטניים
- עיצוב כל כותרות בטור אחד במסמך של שני טורים
- מעבר עמוד לפני כותרת
- מאקרו שמוסיף שדה למיספור אוטומטי (שימושי מאוד לספר עם סימנים רבים, ובכל סימן יש סעיפים)
- מאקרו מעבר מהערה למסמך ולהיפך, וכן מאקרו ליצירת אינדקס בקלות
- קוד VBA להמיר בוורד ממספרים לאותיות, רגיל ובלשון נקייה.
- שינוי מרווח טורים רק בהערות שוליים
- החלפת שדה נבחר למספור אוטומטי אותיות
- המרת מספרים לאותיות עם לשון נקיה
- חיפוש ותיקון סוגריים לא סגורים
- תיקון סוגריים גירסה 2 - מאקרו לגיבוי התבנית normal (הגדרות ברירת המחדל)
- חילוץ טקסט - מפרק את כל ההערות שבמסמך [בלון, שוליים, הערות] למסמכים נפרדים, ומשאיר הפניות במסמך המקורי, עיצוב לבחירת המשתמש.
- מאקרו לוורד להצגת כל קיצורי המקשים המותאמים אישית: - והתבנית המוכנה כאן: https://mitmachim.top/post/641294
- החלפת אות, מילה, או פיסקה עם הסמוכה לה
- הערות שולים - מספור בעברית עד 1200
- קבלת הקוד של התיו המסומן לתורך שימוש בחיפוש והחלפה
- פתרון באג שצג
- המרה הוספה ועריכה שדה מספור אוטומטי
- מספור עברי מעל שצב
- חיפוש והחלפה באבני בניין
- מאקרו הפניה מקושרת אינדקס תצוגת טויטה.
- מאקרו שצובע את המילה הראשונה של כל עמוד בירוק ואת המילה האחרונה באדום, נצרך מאוד לתיקונים לאחר עימוד כדי לוודא שלא קפצו מילים לעמוד הבא.
- מאקרו הדפסה לפי רשימה
- מאקרו להסתרת טקסט
- הפניה מקושרת ממסמך למסמך
- הוספת עיטור לפני או אחרי כותרת
- מאקרו צמצום מסמך בוורד
- מאקרו איזון שורה אחרונה - מילה אחרונה תלושה
הוראות להתקנת מאקרו בקלות
להוראות כלליות לגבי מאקרו ניתן לעיין כאן
כדי להתקין מאקרו בוורד בקלות
-
יש להוריד את התבנית הרצויה (תבניות יובאו בפוסטים בהמשך השרשור)
-
יש להעתיק את התבנית אל תוך התיקייה הזו:
AppData%\Microsoft\Word\STARTUP%
(אפשר ללחוץ על "מקש-חלונות + R" ולהזין שם את הכתובת הנ"ל)
- רוצים להסיר מאקרו? פשוט מחקו אותו מהתיקייה הנ"ל.
אפשרות התקנה חילופית:
יש לפתוח את המאקרו ולאחמ"כ יש לעבור ללשונית 'תצוגה', בצד שמאל יש ללחוץ על 'פקודות מאקרו', בחלון שנפתח יש ללחוץ בצד שמאל על 'סדרן' ולהעתיק את המאקרו מהחלונית הימנית לשמאלית, להעברת המאקרו לתבנית נורמל (Normal).
כדי למחוק מאקרו שהותקן בצורה זו יש לבחור במחק שבחלון זה.-
כעת המאקרו שבתבנית יהיו זמינים לכם בכל מסמך שתרצו
-
כדי להריץ מאקרו יש להיכנס לכרטיססית תצוגה בוורד > פקודות מאקרו > הצג פקודות מאקרו ( או ללחוץ ALT +F8).
כעת בחרו במאקרו המתאים ולחצו על הפעל.
איך ליצור קיצורי דרך למאקרו בקלות
אפשר גם ליצור קיצורי דרך (קיצורי מקשים או לחצן) עבור כל מאקרו שתירצו וכדלהלן:
כדי ליצור קיצור מקשים:
היכנס לקובץ> אפשרויות> התאמה אישית של רצועת הכלים לחץ על 'קיצורי המקלדת' שבתחתית החלון מצד ימין.
או: לחץ על החץ הקטן שבסרגל הכלים לגישה מהירה > אפשרויות> התאמה אישית של רצועת הכלים לחץ על 'קיצורי המקלדת' שבתחתית החלון מצד ימין.כעת יש לגלול ב'קטגוריות' לתחתית החלון ולסמן את פקודות מאקרו - כאן תוכלו להזין איזה קיצור מקשים שתירצו רק שימו לב לכיתוב שמופיע תחת החלון בצד ימין מוקצה כרגע ל: הוי אומר שהקיצור שבחרתם כבר מוקצה למשהו אחר ועלכים להחליט אם לדרוס הקצאה זו או לא
כדי ליצור לחצן:
היכנסו כנ"ל אל אפשרויות וורד
כעת עליכם להחליט אם ליצור לחצן בסרגל הכלים לגישה מהירה, או ליצור סרגל חדש ב 'התאמה אישית של רצועת הכלים' (או אולי סתם להוסיף את המאקרו לסרגל קיים).
החלטתם!
כעת תחת 'בחר פקודות מתוך' בחרו ב'פקודות מאקרו' והוסיפו את הפקודות שברצונכם ליצור להם לחצן על ידי 'הוסף' שבמרכז החלון.
אם ברצונכם שהלחצן יהיה מעוצב קצת - סמנו את לחצן המאקרו שהוספתם ולחצו על 'שינוי' (בצד ימין למטה)בהצלחה!
@pcinfogmach
כידוע לפעמים תוך כדי הכתיבה פותחים סוגריים ושוכחים לסגור אותם, או שפותחים סוגריים בתוך סוגריים, דבר שלא תמיד מקובל
המאקרו הזה מחפש את המקרים האלה בצבע אדום, שאדם יוכל לתקנם (אפשר לעבור מאחד לשני עם קונטרול PAGEDOWNעריכה של ידידנו @דאנציג למטה https://mitmachim.top/assets/uploads/files/1682045184501-חיפוש-סוגריים-לא-סגורים.dotm