שיתוף | "מתעדכן" אוסף מאקרו לוורד - אינדקס מאקרו שימושי + הוראות חשובות.
-
@יוסף123 כתב בשיתוף | "מתעדכן" אוסף מאקרו לוורד - אינדקס מאקרו שימושי + הוראות חשובות.:
המאקרו גם מחליף כל גרשיים כפולים לגרש
למה?
-
@menajemmendel
הוא לא אמור למחוק את שאר הטאבים כי הוא מוחק רק טאב שמגיע מיד אחרי מעבר שורה ידני.
בדקת את זה בגירסה האחרונה של התוסף?
אם אתה לא אוהב את הרעיון של מעבר שורה ידני אתה יכול להסויף לפניו רווח של אפסChrW(8203)
כסימן -
@pcinfogmach כתב בשיתוף | "מתעדכן" אוסף מאקרו לוורד - אינדקס מאקרו שימושי + הוראות חשובות.:
@menajemmendel
הוא לא אמור למחוק את שאר הטאבים כי הוא מוחק רק טאב שמגיע מיד אחרי מעבר שורה ידני.
בדקת את זה בגירסה האחרונה של התוסף?
אם אתה לא אוהב את הרעיון של מעבר שורה ידני אתה יכול להסויף לפניו רווח של אפסChrW(8203)
כסימןלא אני לא מדבר על הביטול, אלא כשממרכזים את זה בפעם הראשונה, וזה מפורש בתוסף, זה לא באג, בכוונה עושים כך, בחלק הזה:
With para .ParagraphFormat.TabStops.ClearAll .ParagraphFormat.TabStops.Add Position:=middlePosition, Alignment:=wdAlignTabCenter ' If .Previous.Text = vbVerticalTab & vbTab Then .Previous.Delete Count:=2 If .Previous.Text = vbVerticalTab Then .Previous.Delete .InsertBefore vbVerticalTab & vbTab End With
אתה רואה בשורה 2 CLEARALL
-
@menajemmendel
אה..
לא אין לי פתרוןעריכה:
למעשה יש שני שיטות למרכוז שורה אחרונה ובכל אחת החסרון שלה
שיטה א יוצרים טאב ידני ואז צריך למחוק את כל הטאבים הידניים
ובשיטה השנייה של שלמה מימות צריך לשנות את הטאב ברירת המחדל לאפס -
@pcinfogmach כתב בשיתוף | "מתעדכן" אוסף מאקרו לוורד - אינדקס מאקרו שימושי + הוראות חשובות.:
@יוסף123 כתב בשיתוף | "מתעדכן" אוסף מאקרו לוורד - אינדקס מאקרו שימושי + הוראות חשובות.:
המאקרו גם מחליף כל גרשיים כפולים לגרש
למה?
כי בספר שאני עורך אנחנו מסמנים ציטוטים עם גרש אחד. (ראשי תיבות הוא לא מחליף). שכחתי לציין שהמאקרו מחליף רווח כפול ברווח בודד.
אם זה חשוב, אני יכול לצרף קובץ עם כל השינויים שהמאקרו עושה (יש מאות)
לא לכולם הכל מתאים -
@pcinfogmach כתב בשיתוף | "מתעדכן" אוסף מאקרו לוורד - אינדקס מאקרו שימושי + הוראות חשובות.:
ובשיטה השנייה של שלמה מימות צריך לשנות את הטאב ברירת המחדל לאפס
מה זה, לא הבנתי איך זה עוזר, אפשר פירוט בבקשה?
-
@menajemmendel כתב בשיתוף | "מתעדכן" אוסף מאקרו לוורד - אינדקס מאקרו שימושי + הוראות חשובות.:
אפשר פירוט בבקשה
באופיס 2016 ומעלה, שכאשר בוחרים 'בזר שורות' השורה האחרונה נמתחת על פני כל השורה (כאשר יש שני מילים ומעלה), וכאשר עושים טאב בסוף השורה, יש באג בוורד שפשוט ממרכז את השורה אחרונה, אך היות והטאב חלק מהשורה, המילים אינם בדיוק באמצע, אלא מוזחים מעט ימינה, וכדי שהם יהיו כמה שיותר מדויק באמצע, משנים את גודל ה'טאב' שיהיה מוגדר על הגודל הקטן ביותר, כך שהמילים יהיו כמה שיותר באמצע.
יש לציין ששיטה זו עובדת נפלא גם בהערות שוליים. (יש לציין שגם התוסף של @pcinfogmach עושה זאת בהערות שוליים). -
@דאנציג כתב בשיתוף | "מתעדכן" אוסף מאקרו לוורד - אינדקס מאקרו שימושי + הוראות חשובות.:
(יש לציין שגם התוסף של @pcinfogmach עושה זאת בהערות שוליים).
בגירסה הנוכחית כבר לא השתמשתי בשיטה זו גם בהערות שוליים
-
@pcinfogmach
ראיתי, אבל ראיתי שזה עובד (וגם חלון) בהערות שוליים (בשונה מהגירסה של ניקיוזר), אתה פשוט אלוף!!!
אבל, בתיבת טקסט שניהם לא עובדים... -
@דאנציג כתב בשיתוף | "מתעדכן" אוסף מאקרו לוורד - אינדקס מאקרו שימושי + הוראות חשובות.:
(וגם חלון) בהערות שוליים (בשונה מהגירסה של ניקיוזר), אתה פשוט אלוף!!!
את החלק הזה של הקוד גם קיבלתי מניק יוזר
-
@דאנציג כתב בשיתוף | "מתעדכן" אוסף מאקרו לוורד - אינדקס מאקרו שימושי + הוראות חשובות.:
אבל, בתיבת טקסט שניהם לא עובדים...
ושל שלמה מימות כן?
-
@pcinfogmach כן
-
חיפוש והחלפה באבני בניין
חיפוש והחלפה עם אבני בניין.dotm -
מצורף מסמך שמכיל מספר פקודות מאקרו: א. הפניה מקושרת ב. אינדקס ג. פקודות שקשורות לתצוגת טויטה
עריכה: מצורף קובץ יותר מעודכן מאקרו הפניה מקושרת אינדקס תצוגת טויטה.dotm -
@pcinfogmach
נוסף בתחילת המאקרו של הפניה מקושרת פקודת בחירת מילה שנמצאת לפני מיקום הסמן כדי שהמאקרו יפעל על מילה זו, ובסוף המאקרו פקודה שבמידה ואי אפשר לעשות הפניה מקושרת שיחזיר את הסמן למיקום של תחילת המאקרו. -
@menajemmendel
שדרגתי את המאקרו של מעבר עמוד, למאקרו שפועל אוטמטי על כל הכותרות הנדרשות.
המאקרו מחפש מהו הסגנון שעליו עומד הסמן ברגע הפעלת המאקרו, ומוסיף לפני כל מופע של סגנון זה במסמך, מעבר עמוד.
ניתן לבטל את כל הוספת מעברי עמוד שהמאקרו עשה בלחיצה פעם אחת על ביטול פעולה אחרונה.Sub הוספת_מעבר_עמוד_לפי_סגנון_כל_המסמך() ' ' הוספת_מעבר_עמוד_לפי_סגנון_כל_המסמך Macro ' ' Application.ScreenUpdating = False Selection.Find.ClearFormatting SIGNON = Selection.Style Dim my_undo As Object Set my_undo = Application.UndoRecord my_undo.StartCustomRecord ("הוספת מעבר עמוד לפי סגנון") On Error GoTo ending Dim rng, oRange As Range Set rng = Selection.Range Selection.WholeStory Set oRange = Selection.Range Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = "^p" .Replacement.Text = "#^p" .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 start: With Selection.Find .ClearFormatting .Text = "#" .Style = SIGNON .Forward = True .Wrap = wdFindContinue Selection.Find.Execute If Not Selection.Range.InRange(oRange) Then GoTo ext If .Found = True Then Selection.Delete Unit:=wdCharacter, Count:=1 Selection.HomeKey Unit:=wdLine Selection.InsertBreak Type:=0 GoTo start End If End With ext: Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = "#" .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 Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = "" .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 rng.Select ending: my_undo.EndCustomRecord Application.ScreenUpdating = True End Sub
-
-
מאקרו שמחזיר לטור אחד לפי סוג כותרת [משוכלל הרבה יותר מהמאקרו הקודם שמחזיר רק לפי מרכוז], יש אפשרות להחיל את המאקרו רק על פיסקא אחת או על כל המסמך, ומוחק כל המעברים המיותרים.
הוראות:- קודם כל צריך לפרוס את כל המסמך לשני טורים ולכוון את המרווחים.
- לוחצים על הלחצן 'מחזיר לטור אחד לפי כותרת' ושואל איזה סגנון רוצים להחזיר לטור אחד.
- שואל אם רוצים רק על פיסקא אחת או על כל המסמך, וכמובן אפשר ללחוץ על ביטול.
- המאקרו מנקה אוטומטי את כל סוגי הכפילויות שנוצרות בגלל הפעולה.
- אם רוצים אפשר לבטל הכל בלחיצה על קונטרול Z.
- יש אפשרות לעשות את הפעולה גם על כמה סגנונות בכל פעם על סגנון אחר או לחזור על אותו סגנון, והמאקרו מוחקת כל הכפילויות.
- אם רוצים להסיר ולהחזיר לשני טורים, יש לחצן נוסף 'מבטל פסקאות שעוצבו לטור אחד ומחזיר לשני טורים', יש שאלת בחירה לאחת משתי אפשרויות, או לבטל במקום אחד, או לבטל הכל בכל המסמך [במקרה שהסתבך, גם בזה יש אפשרות ביטול בלחיצה אחת קונטרול Z].
Sub מחזיר_לטור_אחד_לפי_כותרת() Dim Alerts As Boolean Dim a As Boolean Dim headingName As String Dim para As paragraph Dim section As section Dim inSelectedHeading As Boolean Dim userChoice As VbMsgBoxResult Dim deleteParagraphBreaks As VbMsgBoxResult On Error GoTo ErrorHandler Application.UndoRecord.StartCustomRecord "החזרת לטור אחד לפי כותרת" Alerts = Application.DisplayAlerts Application.DisplayAlerts = wdAlertsNone Application.ScreenUpdating = False headingName = InputBox("הזן את שם הכותרת שברצונך לשנות לטור אחד:", "בחירת כותרת") If headingName = "" Then MsgBox "לא הוזנה כותרת. הפעולה בוטלה.", vbExclamation Exit Sub End If userChoice = MsgBox("האם ברצונך להחיל את השינוי על כל המסמך?", vbYesNoCancel + vbQuestion, "בחירת היקף פעולה") If userChoice = vbCancel Then MsgBox "הפעולה בוטלה.", vbExclamation Exit Sub End If If userChoice = vbNo Then Selection.MoveDown Unit:=wdParagraph, count:=1 Else Selection.HomeKey Unit:=wdStory End If Do Selection.Find.ClearFormatting With Selection.Find .Style = headingName .Text = "^$" .Forward = True .Wrap = wdFindStop .Format = True .MatchCase = False .MatchWholeWord = False .MatchControl = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With a = Selection.Find.Execute If a = True Then Selection.Paragraphs(1).Range.Select ActiveDocument.Range(Start:=Selection.Start, End:=Selection.Start). _ InsertBreak Type:=wdSectionBreakContinuous Selection.Start = Selection.Start + 1 ActiveDocument.Range(Start:=Selection.End, End:=Selection.End).InsertBreak _ Type:=wdSectionBreakContinuous With Selection.pageSetup.TextColumns .SetCount numColumns:=1 .EvenlySpaced = True .LineBetween = False End With Selection.MoveRight Unit:=wdCharacter, count:=1 End If Loop While a = True And (userChoice = vbYes) Call מחיקת_מעברים_מיותרים Selection.HomeKey Unit:=wdStory MsgBox "הפעולה הושלמה! ניתן לבטל את כל השינויים באמצעות Ctrl+Z.", vbInformation Cleanup: Application.DisplayAlerts = Alerts Application.ScreenUpdating = True Application.UndoRecord.EndCustomRecord Exit Sub ErrorHandler: MsgBox "אירעה שגיאה: " & Err.Description, vbCritical Resume Cleanup End Sub Private Sub מחיקת_מעברים_מיותרים() Dim sectionBreakRange As Range Dim paraBefore As Range Dim paraAfter As Range Application.ScreenUpdating = False Selection.HomeKey Unit:=wdStory If Selection.Find.Execute(FindText:="^b", MatchWildcards:=False, Forward:=True, Wrap:=wdFindStop) = True Then If Selection.Start = 0 Then Selection.Delete End If End If Dim found As Boolean Dim specialChar As String: specialChar = ";~;" Selection.HomeKey Unit:=wdStory With Selection.Find .ClearFormatting: .Text = "^b^b": .Forward = True: .Wrap = wdFindStop: .Format = False: .MatchWildcards = False End With Do While Selection.Find.Execute Selection.Collapse Direction:=wdCollapseEnd: Selection.TypeText Text:=specialChar Loop Selection.HomeKey Unit:=wdStory With Selection.Find .ClearFormatting: .Text = "^b" & specialChar: .Forward = True: .Wrap = wdFindStop: .Format = False: .MatchWildcards = False End With Do While Selection.Find.Execute Selection.Delete Loop Selection.HomeKey Unit:=wdStory With Selection.Find .ClearFormatting: .Text = specialChar: .Forward = True: .Wrap = wdFindStop: .Format = False: .MatchWildcards = False End With Do While Selection.Find.Execute Selection.Delete Loop Selection.HomeKey Unit:=wdStory Do While Selection.Find.Execute(FindText:="^b", MatchWildcards:=False, Forward:=True, Wrap:=wdFindStop) = True Set sectionBreakRange = Selection.Range If sectionBreakRange.Start > 0 Then On Error Resume Next Set paraBefore = sectionBreakRange.Paragraphs(1).Range.Previous(wdParagraph, 1) Set paraAfter = sectionBreakRange.Paragraphs(1).Range.Next(wdParagraph, 1) On Error GoTo 0 If Not paraBefore Is Nothing And Not paraAfter Is Nothing Then If paraBefore.pageSetup.TextColumns.count = 1 And _ paraAfter.pageSetup.TextColumns.count = 1 Then sectionBreakRange.Delete End If End If End If Selection.Start = sectionBreakRange.Start Selection.Collapse Direction:=wdCollapseEnd Loop Application.ScreenUpdating = True End Sub Sub מבטל_פסקאות_שעוצבו_לטור_אחד_ומחזיר_לשני_טורים() On Error GoTo ErrorHandler ' הפעלת טיפול בשגיאות Dim userChoice As VbMsgBoxResult userChoice = MsgBox("מחזיר פיסקא נוכחית לשני טורים. האם ברצונך לעשות פעולה זו על כל המסמך?", vbYesNo + vbQuestion, "מחיקת מעברי מקטע") If userChoice = vbYes Then Call מחיקת_מעברי_מקטע_בכל_המסמך ElseIf userChoice = vbNo Then Call מחיקת_מעברי_מקטע_בפסקא_נוכחית Else MsgBox "הפעולה בוטלה.", vbInformation End If Exit Sub ErrorHandler: MsgBox "אירעה שגיאה: " & Err.Description, vbCritical, "שגיאה" End Sub Private Sub מחיקת_מעברי_מקטע_בכל_המסמך() On Error GoTo ErrorHandler ' הפעלת טיפול בשגיאות Dim para As paragraph Dim paraRange As Range Dim sectionRange As Range Application.UndoRecord.StartCustomRecord Application.ScreenUpdating = False Selection.HomeKey Unit:=wdStory For Each para In ActiveDocument.Paragraphs Set paraRange = para.Range If paraRange.pageSetup.TextColumns.count = 1 Then Set sectionRange = paraRange.Duplicate sectionRange.Collapse wdCollapseEnd sectionRange.MoveEnd Unit:=wdCharacter, count:=1 If sectionRange.Text = Chr(12) Then sectionRange.Delete With ActiveDocument.Range(paraRange.Start - 1, paraRange.Start) If .Text = Chr(12) Then .Delete End If End With End If End If Next para MsgBox "הפעולה הסתיימה בהצלחה על כל המסמך", vbInformation Application.ScreenUpdating = True Application.UndoRecord.EndCustomRecord Exit Sub ErrorHandler: Application.ScreenUpdating = True Application.UndoRecord.EndCustomRecord MsgBox "אירעה שגיאה: " & Err.Description, vbCritical, "שגיאה" End Sub Private Sub מחיקת_מעברי_מקטע_בפסקא_נוכחית() On Error GoTo ErrorHandler ' הפעלת טיפול בשגיאות Dim currentPara As paragraph Dim paraRange As Range Dim sectionRange As Range Application.UndoRecord.StartCustomRecord Application.ScreenUpdating = False If Selection.Range.Paragraphs.count = 0 Then MsgBox "נא לעמוד בתוך פסקה בטור אחד.", vbExclamation GoTo Cleanup End If Set currentPara = Selection.Range.Paragraphs(1) Set paraRange = currentPara.Range If currentPara.Range.pageSetup.TextColumns.count <> 1 Then MsgBox "נא לעמוד בפסקה בטור אחד בלבד.", vbExclamation GoTo Cleanup End If Set sectionRange = paraRange.Duplicate sectionRange.Collapse wdCollapseEnd sectionRange.MoveEnd Unit:=wdCharacter, count:=1 If sectionRange.Text <> Chr(12) Then MsgBox "נא לעמוד בפסקה האחרונה לפני מעבר לשני טורים.", vbExclamation GoTo Cleanup End If sectionRange.Delete With Selection.Find .ClearFormatting .Text = "^b" .Forward = False .Wrap = wdFindStop If .Execute Then Selection.Delete End With MsgBox "הפעולה הושלמה בהצלחה עבור הפסקה הנוכחית", vbInformation Cleanup: Application.ScreenUpdating = True Application.UndoRecord.EndCustomRecord Exit Sub ErrorHandler: Application.ScreenUpdating = True Application.UndoRecord.EndCustomRecord MsgBox "אירעה שגיאה: " & Err.Description, vbCritical, "שגיאה" End Sub
שוה בדיקהעריכה: הוכנסו שני תיקונים במאקרו, יש להוריד מחדש.
עריכה נוספת: נוסף אפשרות לשחזר את כל השינויים בלחיצה אחת על Ctrl+Z
עריכה שלישית: נוסף לחצן להסרת הפעולה, כשאין אפשרות של ביטול פעולה אחרונה, ועוד הרבה שיפורים למניעת שגיאות של כפילויות וכדו', וכן הוראות הפעלה -