שיתוף | "מתעדכן" אוסף מאקרו לוורד - אינדקס מאקרו שימושי + הוראות חשובות.
-
מאקרו שצובע את המילה הראשונה של כל עמוד בירוק ואת המילה האחרונה באדום, נצרך מאוד לתיקונים לאחר עימוד כדי לוודא שלא קפצו מילים לעמוד הבא.
ויש לחצן לבדיקת המסמך בסיום העבודה לפני סגירה לדפוס אם יש סימונים שהוזזו ממקומם בתחילת העמוד, אם הכל בסדר מוציא הודעה על כך.
ולחצן נוסף למחיקת הסימונים לאחר שהכל תקין [הצבעים שנצבעים הם לא שגרתיים כך שאין לחשוש שימחקו סימונים אחרים שצריכים לישאר].Sub סימון_תחילת_וסוף_עמוד() On Error GoTo ErrorHandler ' הפעלת טיפול בשגיאות Dim doc As Document Dim rng As Range Dim pageCount As Integer Dim i As Integer Dim firstWord As Range Dim lastWord As Range Dim secondLastWord As Range Dim lastWordEnd As Long Dim firstWordEnd As Long Dim hasPunctuation As Boolean Application.UndoRecord.StartCustomRecord ' קבלת המסמך הפעיל Set doc = ActiveDocument pageCount = doc.ComputeStatistics(wdStatisticPages) ' מעבר על כל עמוד במסמך For i = 1 To pageCount ' הגדרת טווח העמוד Set rng = doc.GoTo(What:=wdGoToPage, Which:=wdGoToAbsolute, Count:=i) rng.End = doc.GoTo(What:=wdGoToPage, Which:=wdGoToAbsolute, Count:=i + 1).Start rng.End = rng.End - 1 ' להוציא את הסימן של עמוד חדש ' סימון המילה הראשונה Set firstWord = rng.Words(1) firstWordEnd = firstWord.End firstWord.font.Color = RGB(1, 255, 1) ' צבע ירוק בהיר ' סימון המילה האחרונה Set lastWord = rng.Words(rng.Words.Count) lastWordEnd = lastWord.End ' בדוק אם יש סימן פיסוק בסוף המילה האחרונה hasPunctuation = InStr(".!?," & Chr(34), Mid(lastWord.Text, Len(lastWord.Text), 1)) > 0 If hasPunctuation Then ' אם יש סימן פיסוק, צובע את שתי המילים האחרונות If rng.Words.Count > 1 Then Set secondLastWord = rng.Words(rng.Words.Count - 1) secondLastWord.font.Color = RGB(255, 1, 1) ' צבע אדום בהיר End If lastWord.font.Color = RGB(255, 1, 1) ' צבע אדום בהיר Else ' אם אין סימן פיסוק, צובע רק את המילה האחרונה lastWord.font.Color = RGB(255, 1, 1) ' צבע אדום בהיר End If Next i MsgBox "המאקרו הסתיים בהצלחה!", vbInformation Application.UndoRecord.EndCustomRecord Exit Sub ErrorHandler: Application.UndoRecord.EndCustomRecord MsgBox "אירעה שגיאה: " & Err.Description, vbCritical, "שגיאה" End Sub Sub חיפוש_סימונים_שלא_במקומם() Static currentPage As Integer Static errorsFound As Boolean Dim doc As Document Dim rng As Range Dim pageCount As Integer Dim i As Integer Dim firstWord As Range Dim startOfPageColor As Long ' צבע לבדיקה startOfPageColor = RGB(1, 255, 1) ' ירוק בהיר ' אתחול משתנים Set doc = ActiveDocument pageCount = doc.ComputeStatistics(wdStatisticPages) ' התחלת בדיקה מהעמוד הראשון אם זה ההפעלה הראשונה If currentPage = 0 Then currentPage = 1 errorsFound = False ' איפוס מצב שגיאות End If ' מעבר על עמודים מהעמוד הנוכחי עד סוף המסמך For i = currentPage To pageCount ' הגדרת טווח עמוד Set rng = doc.GoTo(What:=wdGoToPage, Which:=wdGoToAbsolute, count:=i) rng.End = doc.GoTo(What:=wdGoToPage, Which:=wdGoToAbsolute, count:=i + 1).Start - 1 ' בדיקה אם יש מילים בעמוד If rng.Words.count > 0 Then ' קבלת המילה הראשונה בדיוק מתחילת העמוד Set firstWord = rng.Words(1) If firstWord.Information(wdActiveEndPageNumber) = i Then ' בדיקת צבע המילה הראשונה If firstWord.font.Color <> startOfPageColor Then firstWord.Select errorsFound = True ' נמצאה שגיאה currentPage = i + 1 ' שמירת המיקום להמשך החיפוש Exit Sub End If End If End If Next i ' אם הגענו לסוף המסמך If errorsFound Then MsgBox "החיפוש הסתיים, לא נמצאו עמודים נוספים שהשתנו", vbInformation Else MsgBox "החיפוש הסתיים ולא נמצאו עמודים שהשתנו", vbInformation End If ' איפוס המיקום והסטטוס לבדיקות חדשות currentPage = 0 errorsFound = False End Sub Sub הסרת_הצבעים_המיוחדים() On Error GoTo ErrorHandler ' הפעלת טיפול בשגיאות Dim doc As Document Dim rng As Range Dim i As Integer Dim word As Range ' קבלת המסמך הפעיל Set doc = ActiveDocument ' מעבר על כל המילים במסמך For Each rng In doc.StoryRanges Do For Each word In rng.Words ' אם הצבע אדום בהיר או ירוק בהיר, נסיר אותו If word.font.Color = RGB(1, 255, 1) Or word.font.Color = RGB(255, 1, 1) Then word.font.Color = wdColorAutomatic End If Next word Set rng = rng.NextStoryRange Loop While Not rng Is Nothing Next rng MsgBox "הצבעים הוסרו בהצלחה!", vbInformation Exit Sub ErrorHandler: MsgBox "אירעה שגיאה: " & Err.Description, vbCritical, "שגיאה" End Sub
עריכה: לבקשת @שלמה11 כאן שיניתי את הצבעים ללא רגילים כדי שיהיה אפשרות להסרה קלה.
נוסף לחצן לבדיקת כל המסמך אם כל הסימנים נשארו במקומם הנכון.
וכן נוסף לחצן להסרת הצבעים.
כמו כן נוסף אפשרות לבטל דרך קונטרול z. ועוד שיפורים@מניין כתב בשיתוף | "מתעדכן" אוסף מאקרו לוורד - אינדקס מאקרו שימושי + הוראות חשובות.:
Sub הסרת_הצבעים_המיוחדים()
On Error GoTo ErrorHandler ' הפעלת טיפול בשגיאות
Dim doc As Document
Dim rng As Range
Dim i As Integer
Dim word As Range' קבלת המסמך הפעיל Set doc = ActiveDocument ' מעבר על כל המילים במסמך For Each rng In doc.StoryRanges Do For Each word In rng.Words ' אם הצבע אדום בהיר או ירוק בהיר, נסיר אותו If word.font.Color = RGB(1, 255, 1) Or word.font.Color = RGB(255, 1, 1) Then word.font.Color = wdColorAutomatic End If Next word Set rng = rng.NextStoryRange Loop While Not rng Is Nothing Next rng
אני התכוונתי לזה:
Sub FindGreenAndRedText() ' חיפוש טקסט בצבע ירוק With Selection.Find .ClearFormatting .Font.Color = RGB(1, 255, 1) .Text = "" .Replacement.Text = "" .Wrap = wdFindContinue .Format = True .Execute Replace:=wdReplaceNone End With ' חיפוש טקסט בצבע אדום With Selection.Find .ClearFormatting .Font.Color = RGB(255, 1, 1) .Text = "" .Replacement.Text = "" .Wrap = wdFindContinue .Format = True .Execute Replace:=wdReplaceNone End With End Sub
-
איך עושים בחיפוש והחלפה, תיקון לשגיאות הבאות:
,א = אם יש פסיק ואז אות, שירד הפסיק לפני האות ויהיה אחריה.
שלום(וברכה) = אם התו הפותח של סוגריים, צמוד למילה הקודמת - איך מכניסים ריווח לפני הסוגריים [החלף: "^$(" ב: "^& (" גורם שהתוצאה תהיה כך: "( (" ]
שלום.(וברכה) = אם התו הפותח של סוגריים, צמוד לנקודה או פסיק - איך מכניסים ריווח לפני הסוגריים.
שלום)וברכה = אם התו הסוגר של סוגריים, צמוד למילה הבאה - איך מכניסין ריווח אחרי הסוגריים. -
עשיתי מאקרו תיקון שגיאות (ראה לעיל https://mitmachim.top/topic/51883/שיתוף-מתעדכן-אוסף-מאקרו-לוורד-אינדקס-מאקרו-שימושי-הוראות-חשובות/208?_=1737235546512)
- איך עושים שבסוף התיקון יפתח לי חלון ובו יופיע כמה תיקונים נעשו במסמך, ואיזה תיקונים?
הצלחתי להגיע למצב הזה-
(העתקתי את הפקודה הזו מהאמקרו של "קיצורי מקשים מותאמים אישית")
אבל איך אני גורם לו לכתוב אלו תיקונים נעשו.
-
נ.ב. האם ישנה אפשרות לבטל\לאפשר חלונית זו לפי בחירה, או רק ע"י מחיקת הפקודה הזו מתוך המאקרו?
-
נ.ב.ב איך אני גורם להודעה להופיע למספר שניות ולאחמ"כ להיעלם בלי שאצטרך ללחוץ על אישור?
תודה רבה!
- איך עושים שבסוף התיקון יפתח לי חלון ובו יופיע כמה תיקונים נעשו במסמך, ואיזה תיקונים?
-
-
עשיתי מאקרו תיקון שגיאות (ראה לעיל https://mitmachim.top/topic/51883/שיתוף-מתעדכן-אוסף-מאקרו-לוורד-אינדקס-מאקרו-שימושי-הוראות-חשובות/208?_=1737235546512)
- איך עושים שבסוף התיקון יפתח לי חלון ובו יופיע כמה תיקונים נעשו במסמך, ואיזה תיקונים?
הצלחתי להגיע למצב הזה-
(העתקתי את הפקודה הזו מהאמקרו של "קיצורי מקשים מותאמים אישית")
אבל איך אני גורם לו לכתוב אלו תיקונים נעשו.
-
נ.ב. האם ישנה אפשרות לבטל\לאפשר חלונית זו לפי בחירה, או רק ע"י מחיקת הפקודה הזו מתוך המאקרו?
-
נ.ב.ב איך אני גורם להודעה להופיע למספר שניות ולאחמ"כ להיעלם בלי שאצטרך ללחוץ על אישור?
תודה רבה!
@יאיר-דניאל כתב בשיתוף | "מתעדכן" אוסף מאקרו לוורד - אינדקס מאקרו שימושי + הוראות חשובות.:
נ.ב.ב איך אני גורם להודעה להופיע למספר שניות ולאחמ"כ להיעלם בלי שאצטרך ללחוץ על אישור?
תודה רבה!אתה יכול לייצר userform ולהשתמש בו בצורה של modless
https://bettersolutions.com/vba/userforms/modeless.htmמחפש מדריך ארוך יותר על הנושא של userform עיין כאן:
https://excelmacromastery.com/vba-userform/comment-page-1/ - איך עושים שבסוף התיקון יפתח לי חלון ובו יופיע כמה תיקונים נעשו במסמך, ואיזה תיקונים?
-
עשיתי מאקרו תיקון שגיאות (ראה לעיל https://mitmachim.top/topic/51883/שיתוף-מתעדכן-אוסף-מאקרו-לוורד-אינדקס-מאקרו-שימושי-הוראות-חשובות/208?_=1737235546512)
- איך עושים שבסוף התיקון יפתח לי חלון ובו יופיע כמה תיקונים נעשו במסמך, ואיזה תיקונים?
הצלחתי להגיע למצב הזה-
(העתקתי את הפקודה הזו מהאמקרו של "קיצורי מקשים מותאמים אישית")
אבל איך אני גורם לו לכתוב אלו תיקונים נעשו.
-
נ.ב. האם ישנה אפשרות לבטל\לאפשר חלונית זו לפי בחירה, או רק ע"י מחיקת הפקודה הזו מתוך המאקרו?
-
נ.ב.ב איך אני גורם להודעה להופיע למספר שניות ולאחמ"כ להיעלם בלי שאצטרך ללחוץ על אישור?
תודה רבה!
@יאיר-דניאל כתב בשיתוף | "מתעדכן" אוסף מאקרו לוורד - אינדקס מאקרו שימושי + הוראות חשובות.:
איך עושים שבסוף התיקון יפתח לי חלון ובו יופיע כמה תיקונים נעשו במסמך, ואיזה תיקונים?
עיין כאן
https://stackoverflow.com/a/52868742העיקרון הוא להשתמש עם לולאת חיפוש אבל יש לזה מחיר באיטיות
- איך עושים שבסוף התיקון יפתח לי חלון ובו יופיע כמה תיקונים נעשו במסמך, ואיזה תיקונים?
-
@יאיר-דניאל כתב בשיתוף | "מתעדכן" אוסף מאקרו לוורד - אינדקס מאקרו שימושי + הוראות חשובות.:
איך עושים שבסוף התיקון יפתח לי חלון ובו יופיע כמה תיקונים נעשו במסמך, ואיזה תיקונים?
עיין כאן
https://stackoverflow.com/a/52868742העיקרון הוא להשתמש עם לולאת חיפוש אבל יש לזה מחיר באיטיות
@pcinfogmach תודה, אבל האמת לא התקדמתי כלום...
הכל שם באנגלית והתרגום של גוגל לא מספק, כך שלא הצלחתי להסתדר.
אשמח אם יש למישהו הדרכה בעברית- או אם יש מישהו שיוכל לכתוב לי את הפקודה למאקרו,, ולעלות את זה כאן.
-
@pcinfogmach תודה, אבל האמת לא התקדמתי כלום...
הכל שם באנגלית והתרגום של גוגל לא מספק, כך שלא הצלחתי להסתדר.
אשמח אם יש למישהו הדרכה בעברית- או אם יש מישהו שיוכל לכתוב לי את הפקודה למאקרו,, ולעלות את זה כאן.
@יאיר-דניאל הקוד שנמצא שם הוא כדי לתת מידע על הקוד
שלמעלה שלמעשה לא מחליף שום דבר - הוא פשוט סופר את המקרים של מה שנמצא. -
@יאיר-דניאל הקוד שנמצא שם הוא כדי לתת מידע על הקוד
שלמעלה שלמעשה לא מחליף שום דבר - הוא פשוט סופר את המקרים של מה שנמצא.@u88 ===group
זה מה שהיה שםSub Demo() Application.ScreenUpdating = False Dim i As Long With ActiveDocument.Range With .Find .ClearFormatting .Replacement.ClearFormatting .Text = InputBox("What is the Text to Find") .Replacement.Text = "" .Forward = True .Wrap = wdFindStop .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False .Execute End With Do While .Find.Found i = i + 1 .Collapse wdCollapseEnd .Find.Execute Loop End With Application.ScreenUpdating = True MsgBox i & " instances found." End Sub
-
@יאיר-דניאל הקוד שנמצא שם הוא כדי לתת מידע על הקוד
שלמעלה שלמעשה לא מחליף שום דבר - הוא פשוט סופר את המקרים של מה שנמצא.@u88 אני יודע, וזה בדיוק מה שאני שואל, איך אני מזין לו שיבדוק ויציג לי את כל התיקונים שנעשו ע"י המאקרו שלי
-
@u88 ===group
זה מה שהיה שםSub Demo() Application.ScreenUpdating = False Dim i As Long With ActiveDocument.Range With .Find .ClearFormatting .Replacement.ClearFormatting .Text = InputBox("What is the Text to Find") .Replacement.Text = "" .Forward = True .Wrap = wdFindStop .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False .Execute End With Do While .Find.Found i = i + 1 .Collapse wdCollapseEnd .Find.Execute Loop End With Application.ScreenUpdating = True MsgBox i & " instances found." End Sub
@u88 כתב בשיתוף | "מתעדכן" אוסף מאקרו לוורד - אינדקס מאקרו שימושי + הוראות חשובות.:
זה מה שהיה שם
איפה זה שם?
-
@u88 כתב בשיתוף | "מתעדכן" אוסף מאקרו לוורד - אינדקס מאקרו שימושי + הוראות חשובות.:
זה מה שהיה שם
איפה זה שם?
@יאיר-דניאל באתר ש@pcinfogmach הביא לך
-
@יאיר-דניאל באתר ש@pcinfogmach הביא לך
@u88 לא הבנתי מה אתה רוצה.
בכ"א אני צריך משהו ספציפי, ואשמח אם מישהו יוכל לעזור לי:
איך אני כותב פקודת מאקרו שתציג לי (בהודעה, כך:
את כל השינויים שנעשו במסמך - ע"י המאקרו של תיקון שגיאות שהעלתי למעלה.
אולי @pcinfogmach יוכל לעזור? -
@u88 לא הבנתי מה אתה רוצה.
בכ"א אני צריך משהו ספציפי, ואשמח אם מישהו יוכל לעזור לי:
איך אני כותב פקודת מאקרו שתציג לי (בהודעה, כך:
את כל השינויים שנעשו במסמך - ע"י המאקרו של תיקון שגיאות שהעלתי למעלה.
אולי @pcinfogmach יוכל לעזור?@יאיר-דניאל
אתה מתכוויןלשאול איך כותבים את המאקרו? או שאתה מתכווין לבקש שמישהו יעשה לך את העבודה ויכתוב לך את המאקרו? -
@u88 לא הבנתי מה אתה רוצה.
בכ"א אני צריך משהו ספציפי, ואשמח אם מישהו יוכל לעזור לי:
איך אני כותב פקודת מאקרו שתציג לי (בהודעה, כך:
את כל השינויים שנעשו במסמך - ע"י המאקרו של תיקון שגיאות שהעלתי למעלה.
אולי @pcinfogmach יוכל לעזור?@יאיר-דניאל כתב בשיתוף | "מתעדכן" אוסף מאקרו לוורד - אינדקס מאקרו שימושי + הוראות חשובות.:
@u88 לא הבנתי מה אתה רוצה.
בכ"א אני צריך משהו ספציפי, ואשמח אם מישהו יוכל לעזור לי:
איך אני כותב פקודת מאקרו שתציג לי (בהודעה, כך:
את כל השינויים שנעשו במסמך - ע"י המאקרו של תיקון שגיאות שהעלתי למעלה.
אולי @pcinfogmach יוכל לעזור?תנסה את זה, אבל זה רק על התיקונים הבאים: כפילויות של נקודות, פסיקים, רווחים, גרשיים, מרכאות, רווחים, וכן מוחק רווח לפני פסיק או נקודה, ומוציא הודעה כמה תיקונים בוצעו מכל דבר, ואם אין בכלל תיקונים מודיע שלא בוצעו תיקונים.
שאר הפקודות פשוט לא הבנתי מה הם עושים.Sub תיקון_סימנים_כפולים() Dim תיקונים As String Dim נמצא_תיקון As Boolean Dim מספר_תיקונים As Long Dim מספר_תיקונים_כולל As Long ' אתחול תיקונים = "תיקונים שבוצעו:" & vbCrLf נמצא_תיקון = False מספר_תיקונים_כולל = 0 ' ביצוע התיקונים מספר_תיקונים = בצע_חיפוש_והחלפה("..", ".") If מספר_תיקונים > 0 Then תיקונים = תיקונים & "הוחלף '..' ב- '.' - " & מספר_תיקונים & " פעמים" & vbCrLf נמצא_תיקון = True מספר_תיקונים_כולל = מספר_תיקונים_כולל + מספר_תיקונים End If מספר_תיקונים = בצע_חיפוש_והחלפה(",,", ",") If מספר_תיקונים > 0 Then תיקונים = תיקונים & "הוחלף ',,' ב- ',' - " & מספר_תיקונים & " פעמים" & vbCrLf נמצא_תיקון = True מספר_תיקונים_כולל = מספר_תיקונים_כולל + מספר_תיקונים End If מספר_תיקונים = בצע_חיפוש_והחלפה("''", "'") If מספר_תיקונים > 0 Then תיקונים = תיקונים & "הוחלף '''' ב- ''' - " & מספר_תיקונים & " פעמים" & vbCrLf נמצא_תיקון = True מספר_תיקונים_כולל = מספר_תיקונים_כולל + מספר_תיקונים End If מספר_תיקונים = בצע_חיפוש_והחלפה("""""", """") If מספר_תיקונים > 0 Then תיקונים = תיקונים & "הוחלף '""""' ב- '''' - " & מספר_תיקונים & " פעמים" & vbCrLf נמצא_תיקון = True מספר_תיקונים_כולל = מספר_תיקונים_כולל + מספר_תיקונים End If מספר_תיקונים = בצע_חיפוש_והחלפה(" ", " ") If מספר_תיקונים > 0 Then תיקונים = תיקונים & "הוחלף ' ' ב- ' ' - " & מספר_תיקונים & " פעמים" & vbCrLf נמצא_תיקון = True מספר_תיקונים_כולל = מספר_תיקונים_כולל + מספר_תיקונים End If מספר_תיקונים = בצע_חיפוש_והחלפה(" ,", ",") If מספר_תיקונים > 0 Then תיקונים = תיקונים & "הוחלף ' ,' ב- ',' - " & מספר_תיקונים & " פעמים" & vbCrLf נמצא_תיקון = True מספר_תיקונים_כולל = מספר_תיקונים_כולל + מספר_תיקונים End If מספר_תיקונים = בצע_חיפוש_והחלפה(" .", ".") If מספר_תיקונים > 0 Then תיקונים = תיקונים & "הוחלף ' .' ב- '.' - " & מספר_תיקונים & " פעמים" & vbCrLf נמצא_תיקון = True מספר_תיקונים_כולל = מספר_תיקונים_כולל + מספר_תיקונים End If ' הודעת סיכום If נמצא_תיקון And מספר_תיקונים_כולל > 0 Then MsgBox תיקונים, vbInformation, "סיכום תיקונים" Else MsgBox "לא בוצעו תיקונים במסמך.", vbInformation, "סיכום תיקונים" End If End Sub Function בצע_חיפוש_והחלפה(טקסט_לחיפוש As String, טקסט_להחלפה As String) As Long Dim מספר_החלפות As Long מספר_החלפות = 0 With Selection.Find .ClearFormatting .Replacement.ClearFormatting .Text = טקסט_לחיפוש .Replacement.Text = טקסט_להחלפה .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False End With Do While Selection.Find.Execute(Replace:=wdReplaceOne) מספר_החלפות = מספר_החלפות + 1 Loop בצע_חיפוש_והחלפה = מספר_החלפות End Function
-
@יאיר-דניאל כתב בשיתוף | "מתעדכן" אוסף מאקרו לוורד - אינדקס מאקרו שימושי + הוראות חשובות.:
@u88 לא הבנתי מה אתה רוצה.
בכ"א אני צריך משהו ספציפי, ואשמח אם מישהו יוכל לעזור לי:
איך אני כותב פקודת מאקרו שתציג לי (בהודעה, כך:
את כל השינויים שנעשו במסמך - ע"י המאקרו של תיקון שגיאות שהעלתי למעלה.
אולי @pcinfogmach יוכל לעזור?תנסה את זה, אבל זה רק על התיקונים הבאים: כפילויות של נקודות, פסיקים, רווחים, גרשיים, מרכאות, רווחים, וכן מוחק רווח לפני פסיק או נקודה, ומוציא הודעה כמה תיקונים בוצעו מכל דבר, ואם אין בכלל תיקונים מודיע שלא בוצעו תיקונים.
שאר הפקודות פשוט לא הבנתי מה הם עושים.Sub תיקון_סימנים_כפולים() Dim תיקונים As String Dim נמצא_תיקון As Boolean Dim מספר_תיקונים As Long Dim מספר_תיקונים_כולל As Long ' אתחול תיקונים = "תיקונים שבוצעו:" & vbCrLf נמצא_תיקון = False מספר_תיקונים_כולל = 0 ' ביצוע התיקונים מספר_תיקונים = בצע_חיפוש_והחלפה("..", ".") If מספר_תיקונים > 0 Then תיקונים = תיקונים & "הוחלף '..' ב- '.' - " & מספר_תיקונים & " פעמים" & vbCrLf נמצא_תיקון = True מספר_תיקונים_כולל = מספר_תיקונים_כולל + מספר_תיקונים End If מספר_תיקונים = בצע_חיפוש_והחלפה(",,", ",") If מספר_תיקונים > 0 Then תיקונים = תיקונים & "הוחלף ',,' ב- ',' - " & מספר_תיקונים & " פעמים" & vbCrLf נמצא_תיקון = True מספר_תיקונים_כולל = מספר_תיקונים_כולל + מספר_תיקונים End If מספר_תיקונים = בצע_חיפוש_והחלפה("''", "'") If מספר_תיקונים > 0 Then תיקונים = תיקונים & "הוחלף '''' ב- ''' - " & מספר_תיקונים & " פעמים" & vbCrLf נמצא_תיקון = True מספר_תיקונים_כולל = מספר_תיקונים_כולל + מספר_תיקונים End If מספר_תיקונים = בצע_חיפוש_והחלפה("""""", """") If מספר_תיקונים > 0 Then תיקונים = תיקונים & "הוחלף '""""' ב- '''' - " & מספר_תיקונים & " פעמים" & vbCrLf נמצא_תיקון = True מספר_תיקונים_כולל = מספר_תיקונים_כולל + מספר_תיקונים End If מספר_תיקונים = בצע_חיפוש_והחלפה(" ", " ") If מספר_תיקונים > 0 Then תיקונים = תיקונים & "הוחלף ' ' ב- ' ' - " & מספר_תיקונים & " פעמים" & vbCrLf נמצא_תיקון = True מספר_תיקונים_כולל = מספר_תיקונים_כולל + מספר_תיקונים End If מספר_תיקונים = בצע_חיפוש_והחלפה(" ,", ",") If מספר_תיקונים > 0 Then תיקונים = תיקונים & "הוחלף ' ,' ב- ',' - " & מספר_תיקונים & " פעמים" & vbCrLf נמצא_תיקון = True מספר_תיקונים_כולל = מספר_תיקונים_כולל + מספר_תיקונים End If מספר_תיקונים = בצע_חיפוש_והחלפה(" .", ".") If מספר_תיקונים > 0 Then תיקונים = תיקונים & "הוחלף ' .' ב- '.' - " & מספר_תיקונים & " פעמים" & vbCrLf נמצא_תיקון = True מספר_תיקונים_כולל = מספר_תיקונים_כולל + מספר_תיקונים End If ' הודעת סיכום If נמצא_תיקון And מספר_תיקונים_כולל > 0 Then MsgBox תיקונים, vbInformation, "סיכום תיקונים" Else MsgBox "לא בוצעו תיקונים במסמך.", vbInformation, "סיכום תיקונים" End If End Sub Function בצע_חיפוש_והחלפה(טקסט_לחיפוש As String, טקסט_להחלפה As String) As Long Dim מספר_החלפות As Long מספר_החלפות = 0 With Selection.Find .ClearFormatting .Replacement.ClearFormatting .Text = טקסט_לחיפוש .Replacement.Text = טקסט_להחלפה .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False End With Do While Selection.Find.Execute(Replace:=wdReplaceOne) מספר_החלפות = מספר_החלפות + 1 Loop בצע_חיפוש_והחלפה = מספר_החלפות End Function
-
@יאיר-דניאל כתב בשיתוף | "מתעדכן" אוסף מאקרו לוורד - אינדקס מאקרו שימושי + הוראות חשובות.:
@u88 לא הבנתי מה אתה רוצה.
בכ"א אני צריך משהו ספציפי, ואשמח אם מישהו יוכל לעזור לי:
איך אני כותב פקודת מאקרו שתציג לי (בהודעה, כך:
את כל השינויים שנעשו במסמך - ע"י המאקרו של תיקון שגיאות שהעלתי למעלה.
אולי @pcinfogmach יוכל לעזור?תנסה את זה, אבל זה רק על התיקונים הבאים: כפילויות של נקודות, פסיקים, רווחים, גרשיים, מרכאות, רווחים, וכן מוחק רווח לפני פסיק או נקודה, ומוציא הודעה כמה תיקונים בוצעו מכל דבר, ואם אין בכלל תיקונים מודיע שלא בוצעו תיקונים.
שאר הפקודות פשוט לא הבנתי מה הם עושים.Sub תיקון_סימנים_כפולים() Dim תיקונים As String Dim נמצא_תיקון As Boolean Dim מספר_תיקונים As Long Dim מספר_תיקונים_כולל As Long ' אתחול תיקונים = "תיקונים שבוצעו:" & vbCrLf נמצא_תיקון = False מספר_תיקונים_כולל = 0 ' ביצוע התיקונים מספר_תיקונים = בצע_חיפוש_והחלפה("..", ".") If מספר_תיקונים > 0 Then תיקונים = תיקונים & "הוחלף '..' ב- '.' - " & מספר_תיקונים & " פעמים" & vbCrLf נמצא_תיקון = True מספר_תיקונים_כולל = מספר_תיקונים_כולל + מספר_תיקונים End If מספר_תיקונים = בצע_חיפוש_והחלפה(",,", ",") If מספר_תיקונים > 0 Then תיקונים = תיקונים & "הוחלף ',,' ב- ',' - " & מספר_תיקונים & " פעמים" & vbCrLf נמצא_תיקון = True מספר_תיקונים_כולל = מספר_תיקונים_כולל + מספר_תיקונים End If מספר_תיקונים = בצע_חיפוש_והחלפה("''", "'") If מספר_תיקונים > 0 Then תיקונים = תיקונים & "הוחלף '''' ב- ''' - " & מספר_תיקונים & " פעמים" & vbCrLf נמצא_תיקון = True מספר_תיקונים_כולל = מספר_תיקונים_כולל + מספר_תיקונים End If מספר_תיקונים = בצע_חיפוש_והחלפה("""""", """") If מספר_תיקונים > 0 Then תיקונים = תיקונים & "הוחלף '""""' ב- '''' - " & מספר_תיקונים & " פעמים" & vbCrLf נמצא_תיקון = True מספר_תיקונים_כולל = מספר_תיקונים_כולל + מספר_תיקונים End If מספר_תיקונים = בצע_חיפוש_והחלפה(" ", " ") If מספר_תיקונים > 0 Then תיקונים = תיקונים & "הוחלף ' ' ב- ' ' - " & מספר_תיקונים & " פעמים" & vbCrLf נמצא_תיקון = True מספר_תיקונים_כולל = מספר_תיקונים_כולל + מספר_תיקונים End If מספר_תיקונים = בצע_חיפוש_והחלפה(" ,", ",") If מספר_תיקונים > 0 Then תיקונים = תיקונים & "הוחלף ' ,' ב- ',' - " & מספר_תיקונים & " פעמים" & vbCrLf נמצא_תיקון = True מספר_תיקונים_כולל = מספר_תיקונים_כולל + מספר_תיקונים End If מספר_תיקונים = בצע_חיפוש_והחלפה(" .", ".") If מספר_תיקונים > 0 Then תיקונים = תיקונים & "הוחלף ' .' ב- '.' - " & מספר_תיקונים & " פעמים" & vbCrLf נמצא_תיקון = True מספר_תיקונים_כולל = מספר_תיקונים_כולל + מספר_תיקונים End If ' הודעת סיכום If נמצא_תיקון And מספר_תיקונים_כולל > 0 Then MsgBox תיקונים, vbInformation, "סיכום תיקונים" Else MsgBox "לא בוצעו תיקונים במסמך.", vbInformation, "סיכום תיקונים" End If End Sub Function בצע_חיפוש_והחלפה(טקסט_לחיפוש As String, טקסט_להחלפה As String) As Long Dim מספר_החלפות As Long מספר_החלפות = 0 With Selection.Find .ClearFormatting .Replacement.ClearFormatting .Text = טקסט_לחיפוש .Replacement.Text = טקסט_להחלפה .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False End With Do While Selection.Find.Execute(Replace:=wdReplaceOne) מספר_החלפות = מספר_החלפות + 1 Loop בצע_חיפוש_והחלפה = מספר_החלפות End Function
@מניין תודה
@מניין כתב בשיתוף | "מתעדכן" אוסף מאקרו לוורד - אינדקס מאקרו שימושי + הוראות חשובות.:
שאר הפקודות פשוט לא הבנתי מה הם עושים.
מה לא מובן?
התיקונים של המאקרו שהבאתי הם כדלהלן:
רווח כפול, פסיק כפול, נקודה כפולה, מרכאות כפולות, רווח ולאחמ"כ פסיק, רווח ולאחמ"כ נקודה, רווח ולאחמ"כ מרכאות, שלושה יודי"ם = כל אלו הוא מתקן.
(בעז"ה אני יעלה בקרוב עוד כמה וכמה הוספות על המאקרו הזה)- ולגופו של עניין, אני לא ביקשתי שיכתבו לי מאקרו לתקון שגיאות.. אלא שיכתבו לי פקודת מאקרו שתציג לי הודעה בסיום פעולת המאקרו שלי, ובה יפורט אם בוצעו תיקונים, וא"כ אלו תיוקנים.
-
@מניין תודה
@מניין כתב בשיתוף | "מתעדכן" אוסף מאקרו לוורד - אינדקס מאקרו שימושי + הוראות חשובות.:
שאר הפקודות פשוט לא הבנתי מה הם עושים.
מה לא מובן?
התיקונים של המאקרו שהבאתי הם כדלהלן:
רווח כפול, פסיק כפול, נקודה כפולה, מרכאות כפולות, רווח ולאחמ"כ פסיק, רווח ולאחמ"כ נקודה, רווח ולאחמ"כ מרכאות, שלושה יודי"ם = כל אלו הוא מתקן.
(בעז"ה אני יעלה בקרוב עוד כמה וכמה הוספות על המאקרו הזה)- ולגופו של עניין, אני לא ביקשתי שיכתבו לי מאקרו לתקון שגיאות.. אלא שיכתבו לי פקודת מאקרו שתציג לי הודעה בסיום פעולת המאקרו שלי, ובה יפורט אם בוצעו תיקונים, וא"כ אלו תיוקנים.
@יאיר-דניאל כתב בשיתוף | "מתעדכן" אוסף מאקרו לוורד - אינדקס מאקרו שימושי + הוראות חשובות.:
@מניין תודה
@מניין כתב בשיתוף | "מתעדכן" אוסף מאקרו לוורד - אינדקס מאקרו שימושי + הוראות חשובות.:
- ולגופו של עניין, אני לא ביקשתי שיכתבו לי מאקרו לתקון שגיאות.. אלא שיכתבו לי פקודת מאקרו שתציג לי הודעה בסיום פעולת המאקרו שלי, ובה יפורט אם בוצעו תיקונים, וא"כ אלו תיוקנים.
כנראה לא קראת ולא ניסית את המאקרו שעבדתי קשה בשבילך, הכנסתי כל הפקודות שלך במאקרו חדש שמציג בסוף סיכום איזה תיקונים עשה, ומה שלא הבנתי זה הפקודות שיש שם עם האותיות מנצפכ.
-
@מניין רק הערה, בד"כ כשמחפשים נקודה כפולה צריך לנסח כך: ..?[!.] כי מצוי מאד השימוש בשלוש נקודות.
@אלכסון כתב בשיתוף | "מתעדכן" אוסף מאקרו לוורד - אינדקס מאקרו שימושי + הוראות חשובות.:
@מניין רק הערה, בד"כ כשמחפשים נקודה כפולה צריך לנסח כך: ..?[!.] כי מצוי מאד השימוש בשלוש נקודות.
אם כבר אז כך:
.{1,}
-
@אלכסון כתב בשיתוף | "מתעדכן" אוסף מאקרו לוורד - אינדקס מאקרו שימושי + הוראות חשובות.:
@מניין רק הערה, בד"כ כשמחפשים נקודה כפולה צריך לנסח כך: ..?[!.] כי מצוי מאד השימוש בשלוש נקודות.
אם כבר אז כך:
.{1,}
@pcinfogmach כתב בשיתוף | "מתעדכן" אוסף מאקרו לוורד - אינדקס מאקרו שימושי + הוראות חשובות.:
@אלכסון כתב בשיתוף | "מתעדכן" אוסף מאקרו לוורד - אינדקס מאקרו שימושי + הוראות חשובות.:
@מניין רק הערה, בד"כ כשמחפשים נקודה כפולה צריך לנסח כך: ..?[!.] כי מצוי מאד השימוש בשלוש נקודות.
אם כבר אז כך:
.{1,}
נראה לי שהוא התכוון בדוקא למה שכתב, שבמקום שכתב 3 נקודות רוצה שישארו 3,
-
@אלכסון כתב בשיתוף | "מתעדכן" אוסף מאקרו לוורד - אינדקס מאקרו שימושי + הוראות חשובות.:
@מניין רק הערה, בד"כ כשמחפשים נקודה כפולה צריך לנסח כך: ..?[!.] כי מצוי מאד השימוש בשלוש נקודות.
אם כבר אז כך:
.{1,}
@pcinfogmach כתב בשיתוף | "מתעדכן" אוסף מאקרו לוורד - אינדקס מאקרו שימושי + הוראות חשובות.:
אם כבר אז כך:
.{1,}
מה זה עושה?