מדריך | סט מאקרואים לניהול תיקון השגיאות האוטומטי בוורד
-
סט מאקרואים לניהול תיקון השגיאות האוטומטי בוורד
בעקבות הרעיון הנפלא של @מענין-לשמוע, ששיתף כאן מאקרו בסיסי לניהול תיקון שגיאות בוורד, לקחתי את היוזמה ושדרגתי את הקוד.
במדריך זה תמצאו 5 מאקרואים שימושיים לניהול התיקון האוטומטי (AutoCorrect) בוורד. בשימוש נכון, הם יכולים לחסוך זמן יקר ולייעל את עבודתכם. המדריך כולל °הדרכה מפורטת°, צעד אחר צעד, המסבירה כיצד להשתמש בהם.
תוכן עניינים:
- פרק 1: הכרות עם כלי התיקון האוטומטי
- פרק 2: מגבלות הכלי ושדרוגו באמצעות מאקרואים
- פרק 3: שילוב המאקרואים בוורד
- פרק 4: הפעלת המאקרואים
- פרק 5: המאקרואים המלאים
א
פרק 1: הכרות עם כלי התיקון האוטומטי
לפני שנצלול למאקרואים, חשוב להבין מהו הכלי המובנה שאנחנו הולכים לשדרג. "התיקון האוטומטי" (AutoCorrect) הוא למעשה מילון אישי הפועל ברקע בזמן הכתיבה, במטרה לחסוך זמן ומאמץ על ידי ביצוע החלפות טקסט אוטומטיות.
איך זה עובד?
- תיקון שגיאות הקלדה: הקלדתם בטעות "עכשין"? וורד יתקן אוטומטית ל"עכשיו".
- הרחבת ראשי תיבות: במקום להקליד "בעזרת השם", ניתן להגדיר שהקיצור
בע"ה
יוחלף אוטומטית בטקסט המלא. - יצירת קיצורים אישיים: הגדירו קיצור כמו
מייל
והוא יוחלף בכתובת המייל המלאה שלכם.
איך מוסיפים ערך באופן ידני?
- בתפריט הראשי, היכנסו ל-
קובץ
>אפשרויות
. - בחלון שנפתח, עברו ללשונית
הגהה
. - לחצו על הכפתור
אפשרויות תיקון שגיאות אוטומטי...
. - בחלון שקפץ, ודאו שאתם בלשונית
תיקון שגיאות אוטומטי
. כעת תראו שתי תיבות:- החלף: כאן רושמים את הקיצור או הטקסט השגוי (לדוגמה:
בהכנ"ס
). - ב-: כאן רושמים את הטקסט המלא והנכון (לדוגמה:
בית הכנסת
).
- החלף: כאן רושמים את הקיצור או הטקסט השגוי (לדוגמה:
- לחצו על
הוספה
ולאחר מכןאישור
כדי לשמור את השינוי.
ב
פרק 2: מגבלות הכלי ושדרוגו באמצעות מאקרואים
השימוש הידני בכלי התיקון האוטומטי נתקל בשתי בעיות מרכזיות שהופכות אותו ללא יעיל בשימוש מתקדם:
- בעיית התחיליות בעברית: אם הגדרתם ש-
בהכנ"ס
יוחלף ב-בית הכנסת
, וורד לא ידע מה לעשות כשתקלידוובהכנ"ס
אושבהכנ"ס
. הוספה ידנית של כל צירוף אפשרי (ש
,ו
,ה
,כש
וכו') היא עבודה מייגעת. - קושי בניהול המאגר: ככל שהרשימה גדלה, קשה לנהל אותה. הממשק המובנה של וורד אינו מאפשר גיבוי נוח, עריכה מרוכזת של ערכים, או קבלת תמונה מלאה של כל המאגר הקיים.
המאקרואים הבאים מציעים פתרון לבעיות אלו:
-
מאקרו 1 (הוספה) ומאקרו 2 (הסרה): אלו הם כלים לשימוש יומיומי ומהיר. הם מאפשרים להוסיף או להסיר ערך בודד יחד עם כל התחיליות שלו בפעולה אחת.
-
מאקרו 3 (ייצוא), מאקרו 4 (שדרוג) ומאקרו 5 (איפוס): אלו כלים לניהול מתקדם של המאגר. הם מאפשרים לייצא את כל הרשימה לטבלה נוחה, לערוך, לגבות, ואז לבחור אם לשדרג את המאגר הקיים (להוסיף תחיליות לערכים) או לאפס אותו ולייבא רשימה חדשה ונקייה.
כעת, לאחר שהבנו את ההיגיון, ניגש לשלב הבא.
ג
פרק 3: שילוב המאקרואים בוורד
כדי לשלב את המאקרואים בסביבת העבודה שלכם, נדרשת פעולה חד-פעמית. לאחר מכן, הם יהיו זמינים באופן קבוע בכל מסמכי הוורד שתפתחו. קיימות שתי שיטות לעשות זאת:
שיטה 1: הוספה ידנית של הקוד
זו הדרך הקלאסית, שבה אתם מעתיקים את הקוד ישירות לתוך עורך המאקרואים של וורד.
- פתיחת עורך הקוד (VBA): לחצו על
Alt + F11
במקלדת. - איתור התבנית הגלובלית (Normal): בחלונית השמאלית ("Project"), אתרו את הפרויקט Normal.
- פתיחת מודול חדש:
- תחת
Normal
, לחצו על ה-+
ליד תיקייתModules
. - לחצו לחיצה כפולה על NewMacros.
- אם המודול או התיקייה לא קיימים, לחצו קליק ימני על
Normal
ובחרוInsert
>Module
.
- תחת
- הדבקת הקוד: בחלון הלבן הגדול שייפתח, הדביקו את כל חמשת קטעי הקוד של המאקרואים מפרק 5.
- שמירה ויציאה: סגרו את חלון העורך (
Alt + F11
). וורד ישמור את השינויים אוטומטית.
שיטה 2: שימוש בקובץ תבנית מוכן
למי שמעדיף להימנע מהתעסקות עם קוד, הכנתי קובץ התקנה אוטומטי (
.dotm
) המכיל את כל המאקרואים.- הורידו את קובץ התבנית: תיקון שגיאות אוטומטי 2.dotm
- פתחו את תיקיית ה-STARTUP של וורד:
- לחצו
מקש ווינדוס + R
לפתיחת חלון "הפעלה". - הדביקו את הנתיב הבא ולחצו
אישור
:
%appdata%\Microsoft\Word\STARTUP
- זהו נתיב מיוחד בו וורד טוען באופן אוטומטי כל תבנית (
.dotm
) בעת ההפעלה, מה שהופך את המאקרואים לזמינים בכל המסמכים.
- לחצו
- העבירו את הקובץ לתיקייה: גררו או העתיקו את קובץ ה-
.dotm
שהורדתם לתיקייתSTARTUP
. - הפעילו את וורד מחדש: סגרו את כל חלונות וורד והפעילו אותו שוב.
וזהו! המאקרואים זמינים כעת לשימושכם.
ד
פרק 4: הפעלת המאקרואים
לאחר שהוספתם את המאקרואים, ניתן להפעיל אותם באופן הבא:
- הפעלה דרך תפריט המאקרואים:
- לחצו
Alt + F8
לפתיחת חלון המאקרואים. - בחרו מהרשימה את הפעולה הרצויה (
תיקון_אוטומטי_הוספת_ערך
וכו'). - לחצו על כפתור "הפעל" (Run).
- לחצו
- גישה מהירה ויעילה (מומלץ):
- ליעילות מרבית, מומלץ להקצות למאקרואים קיצורי מקשים, או להוסיף אותם ככפתורים בסרגל הכלים לגישה מהירה (Quick Access Toolbar). כך תוכלו להפעילם בלחיצת כפתור אחת.
- רשימת המאקרואים:
- תיקון_אוטומטי_הוספת_ערך
- תיקון_אוטומטי_הסרת_ערך
- תיקון_אוטומטי_ייצוא_רשימה_לטבלה
- תיקון_אוטומטי_ייבוא_מטבלה_שדרוג
- תיקון_אוטומטי_ייבוא_מטבלה_איפוס
ה
פרק 5: המאקרואים המלאים
להלן הקוד המלא עם הסבר מפורט עבור כל אחד מחמשת המאקרואים, מוכן להעתקה ולהדבקה בעורך ה-VBA.
מאקרו 1: הוספת ערך חדש עם כל התחיליות
מאקרו זה יציג שתי תיבות דו-שיח: בראשונה תזינו את המילה השגויה, ובשנייה את התיקון. לאחר אישור, הוא יוסיף את התיקון למילון, כולל גרסאות עם התחיליות הנפוצות (
ש, ו, ה, שה, כשה, מ, ד, ל, כ
) בפעולה אחת.Sub תיקון_אוטומטי_הוספת_ערך() Dim mila As String, tikun As String Dim prefixes As Variant, p As Variant prefixes = Array("ש", "ו", "ה", "שה", "כשה", "מ", "ד", "ל", "כ") mila = InputBox("הזן מילה שגויה (הפעולה תוסיף אוטומטית גם תחיליות):", "הוספה חכמה לתיקון אוטומטי") If mila = "" Then MsgBox "לא נבחרה מילה, הפעולה בוטלה!", vbMsgBoxRight + vbMsgBoxRtlReading + vbExclamation Exit Sub End If tikun = InputBox("רשום את המילה המתוקנת:", "הוספה חכמה לתיקון אוטומטי", mila) If tikun = "" Then MsgBox "לא נבחר תיקון, הפעולה בוטלה!", vbMsgBoxRight + vbMsgBoxRtlReading + vbExclamation Exit Sub End If AutoCorrect.Entries.Add Name:=mila, Value:=tikun For Each p In prefixes AutoCorrect.Entries.Add Name:=(p & mila), Value:=(p & tikun) Next p MsgBox "הערך '" & mila & "' וכל התחיליות הנלוות נוספו/עודכנו בהצלחה!", vbMsgBoxRight + vbMsgBoxRtlReading + vbInformation End Sub
מאקרו 2: הסרת ערך וכל נגזרותיו
טעיתם או שאתם רוצים לנקות ערך מסוים? מאקרו זה מבצע את הפעולה ההפוכה. הוא יבקש מכם להזין את המילה השגויה, וימחק אותה ואת כל הגרסאות שלה עם התחיליות מרשימת התיקון האוטומטי.
Sub תיקון_אוטומטי_הסרת_ערך() Dim mila_to_remove As String Dim prefixes As Variant, p As Variant Dim deletedCount As Long prefixes = Array("ש", "ו", "ה", "שה", "כשה", "מ", "ד", "ל", "כ") deletedCount = 0 mila_to_remove = InputBox("הזן את המילה השגויה להסרה (הפעולה תסיר גם את כל התחיליות):", "הסרה מלאה מתיקון אוטומטי") If mila_to_remove = "" Then Exit Sub On Error Resume Next AutoCorrect.Entries(mila_to_remove).Delete If Err.Number = 0 Then deletedCount = deletedCount + 1 End If Err.Clear For Each p In prefixes AutoCorrect.Entries(p & mila_to_remove).Delete If Err.Number = 0 Then deletedCount = deletedCount + 1 End If Err.Clear Next p On Error GoTo 0 If deletedCount > 0 Then MsgBox deletedCount & " רשומות הקשורות ל-'" & mila_to_remove & "' הוסרו בהצלחה.", _ vbInformation + vbMsgBoxRight + vbMsgBoxRtlReading, "ההסרה הושלמה" Else MsgBox "הערך '" & mila_to_remove & "' (וכל תחילית קשורה) לא נמצא ברשימת התיקונים האוטומטיים.", _ vbExclamation + vbMsgBoxRight + vbMsgBoxRtlReading, "לא נמצא ערך" End If End Sub
מאקרו 3: ייצוא המאגר המלא לטבלה
מאקרו זה סורק את כל רשימת התיקונים הקיימת ומייצא אותה לטבלה מסודרת במסמך הוורד הפעיל. מומלץ להפעיל אותו במסמך ריק. זהו הצעד הראשון לניהול מתקדם של המאגר.
טיפ חשוב: גיבוי הרשימה המקורית
לאחר יצירת הטבלה באמצעות מאקרו זה, ולפני שתפעילו את מאקרו 4 או 5, שמרו עותק של המסמך. קובץ זה ישמש כגיבוי בטוח של כל מאגר התיקונים המקורי שלכם, ותוכלו לחזור אליו בכל עת.Sub תיקון_אוטומטי_ייצוא_רשימה_לטבלה() Dim entry As AutoCorrectEntry Dim tbl As Table Dim msg As String Dim totalEntries As Long, i As Long If Not ActiveDocument Is Nothing Then msg = "מאקרו זה ייצור טבלה במסמך הנוכחי עם כל רשימת התיקונים האוטומטיים שלך." & vbCrLf & _ "מומלץ להפעיל אותו במסמך חדש וריק." & vbCrLf & vbCrLf & "להמשיך?" If MsgBox(msg, vbYesNo + vbInformation + vbMsgBoxRight + vbMsgBoxRtlReading, "ייצוא רשימה") = vbNo Then Exit Sub End If Application.ScreenUpdating = False totalEntries = Application.AutoCorrect.Entries.Count If totalEntries = 0 Then MsgBox "לא נמצאו רשומות תיקון אוטומטי לייצא.", _ vbInformation + vbMsgBoxRight + vbMsgBoxRtlReading, "אין רשומות" Application.ScreenUpdating = True Exit Sub End If Set tbl = ActiveDocument.Tables.Add(Range:=Selection.Range, NumRows:=totalEntries + 1, NumColumns:=2) With tbl .Borders.Enable = True .AllowAutoFit = False .Columns(1).SetWidth CentimetersToPoints(6), wdAdjustNone .Columns(2).SetWidth CentimetersToPoints(8), wdAdjustNone .Range.Cells.VerticalAlignment = wdAlignVerticalCenter .Rows.Alignment = wdAlignRowCenter With .Range.ParagraphFormat .SpaceBefore = 0 .SpaceAfter = 0 .LineSpacingRule = wdLineSpaceSingle End With End With With tbl.Rows(1) .Range.Font.Size = 14 .Range.Font.Bold = True .Range.Font.BoldBi = True .Range.ParagraphFormat.Alignment = wdAlignParagraphCenter .Shading.BackgroundPatternColor = wdColorGray15 .Cells(1).Range.Text = "החלף (טקסט שגוי)" .Cells(2).Range.Text = "ב- (טקסט מתוקן)" End With i = 1 For Each entry In Application.AutoCorrect.Entries i = i + 1 Application.StatusBar = "מייצא רשומה " & i - 1 & " מתוך " & totalEntries & "..." With tbl.Rows(i) .Range.Font.Bold = False .Range.Font.BoldBi = False .Range.Font.Size = 11 .Range.ParagraphFormat.Alignment = wdAlignParagraphRight If i Mod 2 = 0 Then .Shading.BackgroundPatternColor = wdColorGray05 End If .Cells(1).Range.Text = entry.Name .Cells(2).Range.Text = entry.Value End With Next entry Application.StatusBar = False Application.ScreenUpdating = True tbl.Select DoEvents Selection.Collapse Direction:=wdCollapseStart MsgBox totalEntries & " רשומות יוצאו בהצלחה לטבלה.", _ vbInformation + vbMsgBoxRight + vbMsgBoxRtlReading, "הייצוא הושלם" End If End Sub
מאקרו 4: שדרוג המאגר הקיים עם תחיליות
לאחר שייצאתם את הרשימה לטבלה, מאקרו זה מאפשר להוסיף תחיליות לערכים המופיעים בה.
טיפ לשימוש גמיש: באפשרותכם לערוך את הטבלה ולמחוק ממנה שורות של ערכים שאינכם רוצים להוסיף להם תחיליות. המאקרו יעבד רק את השורות שנותרו בטבלה, מה שמעניק לכם שליטה מלאה על תהליך השדרוג.
הערה חשובה: מאקרו זה פועל בבטחה – הוא אינו מוחק ערכים קיימים מהמילון, אלא רק מוסיף ומעדכן. המשמעות היא שאם ערך מהטבלה כבר קיים במאגר התיקונים שלכם, הוא יידרס ויעודכן לערך החדש שמופיע בטבלה. ערכים אחרים שאינם בטבלה לא יושפעו.
Sub תיקון_אוטומטי_ייבוא_מטבלה_שדרוג() Dim tbl As Table Dim i As Long Dim mila As String, tikun As String Dim prefixes As Variant, p As Variant Dim totalRows As Long, processedCount As Long, updatedCount As Long Dim isUpdate As Boolean If ActiveDocument.Tables.Count = 0 Then MsgBox "לא נמצאה טבלה במסמך הפעיל.", _ vbCritical + vbMsgBoxRight + vbMsgBoxRtlReading, "שגיאה: לא נמצאה טבלה" Exit Sub End If If MsgBox("מאקרו זה ישדרג את כל הערכים מהטבלה (יוסיף חדשים, יעדכן קיימים, ויוסיף לכולם תחיליות).", _ vbYesNo + vbQuestion + vbMsgBoxRight + vbMsgBoxRtlReading, "אישור שדרוג") = vbNo Then Exit Sub End If Application.ScreenUpdating = False prefixes = Array("ש", "ו", "ה", "שה", "כשה", "מ", "ד", "ל", "כ") Set tbl = ActiveDocument.Tables(1) totalRows = tbl.Rows.Count processedCount = 0 updatedCount = 0 For i = 2 To totalRows Application.StatusBar = "מעבד שורה " & i - 1 & " מתוך " & totalRows - 1 & "..." mila = Trim(Left(tbl.Cell(i, 1).Range.Text, Len(tbl.Cell(i, 1).Range.Text) - 2)) tikun = Trim(Left(tbl.Cell(i, 2).Range.Text, Len(tbl.Cell(i, 2).Range.Text) - 2)) If Len(mila) > 0 And Len(tikun) > 0 Then isUpdate = False On Error Resume Next Dim dummyValue As String dummyValue = AutoCorrect.Entries(mila).Value If Err.Number = 0 Then isUpdate = True End If Err.Clear On Error GoTo 0 If isUpdate Then updatedCount = updatedCount + 1 AutoCorrect.Entries(mila).Delete End If AutoCorrect.Entries.Add Name:=mila, Value:=tikun For Each p In prefixes On Error Resume Next AutoCorrect.Entries(p & mila).Delete On Error GoTo 0 AutoCorrect.Entries.Add Name:=(p & mila), Value:=(p & tikun) Next p processedCount = processedCount + 1 End If Next i Application.StatusBar = False Application.ScreenUpdating = True MsgBox "תהליך השדרוג הסתיים בהצלחה!" & vbCrLf & vbCrLf & _ processedCount & " ערכים מהטבלה עובדו." & vbCrLf & _ updatedCount & " מתוכם היו עדכונים לערכים קיימים.", _ vbInformation + vbMsgBoxRight + vbMsgBoxRtlReading, "השדרוג הושלם" End Sub
מאקרו 5: איפוס וייבוא מאגר נקי
מאקרו זה מיועד למי שרוצה "להתחיל דף נקי". הוא יחליף את כל מאגר התיקונים הקיים ברשימה חדשה, המבוססת אך ורק על הטבלה שיצרתם וערכתם.
שימו לב – פעולה זו בלתי הפיכה!
המאקרו מוחק לחלוטין את כל הרשימה הקיימת ובונה אותה מחדש מהטבלה (ללא הוספת תחיליות אוטומטית). אם תרצו להוסיף תחיליות לרשימה החדשה, פשוט הפעילו את מאקרו 4 מיד לאחר מכן.Sub תיקון_אוטומטי_ייבוא_מטבלה_איפוס() Dim tbl As Table Dim i As Long, j As Long ' הוספנו את j עבור לולאת המחיקה Dim totalRows As Long Dim mila As String, tikun As String Dim importedCount As Long, deletedCount As Long If ActiveDocument.Tables.Count = 0 Then MsgBox "לא נמצאה טבלה במסמך הפעיל.", _ vbCritical + vbMsgBoxRight + vbMsgBoxRtlReading, "שגיאה: לא נמצאה טבלה" Exit Sub End If If MsgBox("אזהרה!" & vbCrLf & vbCrLf & _ "פעולה זו תמחק **לחלוטין** את כל רשימת התיקונים הקיימת שלך, " & _ "ותחליף אותה רק בערכים מהטבלה." & vbCrLf & _ "הפעולה אינה ניתנת לביטול." & vbCrLf & vbCrLf & _ "האם אתה בטוח שברצונך להמשיך?", _ vbYesNo + vbCritical + vbDefaultButton2 + vbMsgBoxRight + vbMsgBoxRtlReading, _ "אישור איפוס מלא") = vbNo Then Exit Sub End If Application.ScreenUpdating = False deletedCount = AutoCorrect.Entries.Count For j = deletedCount To 1 Step -1 Application.StatusBar = "מוחק רשומה ישנה " & (deletedCount - j + 1) & " מתוך " & deletedCount & "..." AutoCorrect.Entries(j).Delete Next j Set tbl = ActiveDocument.Tables(1) totalRows = tbl.Rows.Count importedCount = 0 For i = 2 To totalRows Application.StatusBar = "מייבא רשומה " & i - 1 & " מתוך " & totalRows - 1 & "..." mila = Trim(Left(tbl.Cell(i, 1).Range.Text, Len(tbl.Cell(i, 1).Range.Text) - 2)) tikun = Trim(Left(tbl.Cell(i, 2).Range.Text, Len(tbl.Cell(i, 2).Range.Text) - 2)) If Len(mila) > 0 And Len(tikun) > 0 Then On Error Resume Next AutoCorrect.Entries.Add Name:=mila, Value:=tikun If Err.Number = 0 Then importedCount = importedCount + 1 Else Err.Clear End If On Error GoTo 0 End If Next i Application.StatusBar = False Application.ScreenUpdating = True MsgBox "התהליך הושלם בהצלחה!" & vbCrLf & vbCrLf & _ deletedCount & " רשומות ישנות נמחקו." & vbCrLf & _ importedCount & " רשומות חדשות יובאו מהטבלה.", _ vbInformation + vbMsgBoxRight + vbMsgBoxRtlReading, "איפוס וייבוא הושלמו" End Sub
בהצלחה!
-
-
סט מאקרואים לניהול תיקון השגיאות האוטומטי בוורד
בעקבות הרעיון הנפלא של @מענין-לשמוע, ששיתף כאן מאקרו בסיסי לניהול תיקון שגיאות בוורד, לקחתי את היוזמה ושדרגתי את הקוד.
במדריך זה תמצאו 5 מאקרואים שימושיים לניהול התיקון האוטומטי (AutoCorrect) בוורד. בשימוש נכון, הם יכולים לחסוך זמן יקר ולייעל את עבודתכם. המדריך כולל °הדרכה מפורטת°, צעד אחר צעד, המסבירה כיצד להשתמש בהם.
תוכן עניינים:
- פרק 1: הכרות עם כלי התיקון האוטומטי
- פרק 2: מגבלות הכלי ושדרוגו באמצעות מאקרואים
- פרק 3: שילוב המאקרואים בוורד
- פרק 4: הפעלת המאקרואים
- פרק 5: המאקרואים המלאים
א
פרק 1: הכרות עם כלי התיקון האוטומטי
לפני שנצלול למאקרואים, חשוב להבין מהו הכלי המובנה שאנחנו הולכים לשדרג. "התיקון האוטומטי" (AutoCorrect) הוא למעשה מילון אישי הפועל ברקע בזמן הכתיבה, במטרה לחסוך זמן ומאמץ על ידי ביצוע החלפות טקסט אוטומטיות.
איך זה עובד?
- תיקון שגיאות הקלדה: הקלדתם בטעות "עכשין"? וורד יתקן אוטומטית ל"עכשיו".
- הרחבת ראשי תיבות: במקום להקליד "בעזרת השם", ניתן להגדיר שהקיצור
בע"ה
יוחלף אוטומטית בטקסט המלא. - יצירת קיצורים אישיים: הגדירו קיצור כמו
מייל
והוא יוחלף בכתובת המייל המלאה שלכם.
איך מוסיפים ערך באופן ידני?
- בתפריט הראשי, היכנסו ל-
קובץ
>אפשרויות
. - בחלון שנפתח, עברו ללשונית
הגהה
. - לחצו על הכפתור
אפשרויות תיקון שגיאות אוטומטי...
. - בחלון שקפץ, ודאו שאתם בלשונית
תיקון שגיאות אוטומטי
. כעת תראו שתי תיבות:- החלף: כאן רושמים את הקיצור או הטקסט השגוי (לדוגמה:
בהכנ"ס
). - ב-: כאן רושמים את הטקסט המלא והנכון (לדוגמה:
בית הכנסת
).
- החלף: כאן רושמים את הקיצור או הטקסט השגוי (לדוגמה:
- לחצו על
הוספה
ולאחר מכןאישור
כדי לשמור את השינוי.
ב
פרק 2: מגבלות הכלי ושדרוגו באמצעות מאקרואים
השימוש הידני בכלי התיקון האוטומטי נתקל בשתי בעיות מרכזיות שהופכות אותו ללא יעיל בשימוש מתקדם:
- בעיית התחיליות בעברית: אם הגדרתם ש-
בהכנ"ס
יוחלף ב-בית הכנסת
, וורד לא ידע מה לעשות כשתקלידוובהכנ"ס
אושבהכנ"ס
. הוספה ידנית של כל צירוף אפשרי (ש
,ו
,ה
,כש
וכו') היא עבודה מייגעת. - קושי בניהול המאגר: ככל שהרשימה גדלה, קשה לנהל אותה. הממשק המובנה של וורד אינו מאפשר גיבוי נוח, עריכה מרוכזת של ערכים, או קבלת תמונה מלאה של כל המאגר הקיים.
המאקרואים הבאים מציעים פתרון לבעיות אלו:
-
מאקרו 1 (הוספה) ומאקרו 2 (הסרה): אלו הם כלים לשימוש יומיומי ומהיר. הם מאפשרים להוסיף או להסיר ערך בודד יחד עם כל התחיליות שלו בפעולה אחת.
-
מאקרו 3 (ייצוא), מאקרו 4 (שדרוג) ומאקרו 5 (איפוס): אלו כלים לניהול מתקדם של המאגר. הם מאפשרים לייצא את כל הרשימה לטבלה נוחה, לערוך, לגבות, ואז לבחור אם לשדרג את המאגר הקיים (להוסיף תחיליות לערכים) או לאפס אותו ולייבא רשימה חדשה ונקייה.
כעת, לאחר שהבנו את ההיגיון, ניגש לשלב הבא.
ג
פרק 3: שילוב המאקרואים בוורד
כדי לשלב את המאקרואים בסביבת העבודה שלכם, נדרשת פעולה חד-פעמית. לאחר מכן, הם יהיו זמינים באופן קבוע בכל מסמכי הוורד שתפתחו. קיימות שתי שיטות לעשות זאת:
שיטה 1: הוספה ידנית של הקוד
זו הדרך הקלאסית, שבה אתם מעתיקים את הקוד ישירות לתוך עורך המאקרואים של וורד.
- פתיחת עורך הקוד (VBA): לחצו על
Alt + F11
במקלדת. - איתור התבנית הגלובלית (Normal): בחלונית השמאלית ("Project"), אתרו את הפרויקט Normal.
- פתיחת מודול חדש:
- תחת
Normal
, לחצו על ה-+
ליד תיקייתModules
. - לחצו לחיצה כפולה על NewMacros.
- אם המודול או התיקייה לא קיימים, לחצו קליק ימני על
Normal
ובחרוInsert
>Module
.
- תחת
- הדבקת הקוד: בחלון הלבן הגדול שייפתח, הדביקו את כל חמשת קטעי הקוד של המאקרואים מפרק 5.
- שמירה ויציאה: סגרו את חלון העורך (
Alt + F11
). וורד ישמור את השינויים אוטומטית.
שיטה 2: שימוש בקובץ תבנית מוכן
למי שמעדיף להימנע מהתעסקות עם קוד, הכנתי קובץ התקנה אוטומטי (
.dotm
) המכיל את כל המאקרואים.- הורידו את קובץ התבנית: תיקון שגיאות אוטומטי 2.dotm
- פתחו את תיקיית ה-STARTUP של וורד:
- לחצו
מקש ווינדוס + R
לפתיחת חלון "הפעלה". - הדביקו את הנתיב הבא ולחצו
אישור
:
%appdata%\Microsoft\Word\STARTUP
- זהו נתיב מיוחד בו וורד טוען באופן אוטומטי כל תבנית (
.dotm
) בעת ההפעלה, מה שהופך את המאקרואים לזמינים בכל המסמכים.
- לחצו
- העבירו את הקובץ לתיקייה: גררו או העתיקו את קובץ ה-
.dotm
שהורדתם לתיקייתSTARTUP
. - הפעילו את וורד מחדש: סגרו את כל חלונות וורד והפעילו אותו שוב.
וזהו! המאקרואים זמינים כעת לשימושכם.
ד
פרק 4: הפעלת המאקרואים
לאחר שהוספתם את המאקרואים, ניתן להפעיל אותם באופן הבא:
- הפעלה דרך תפריט המאקרואים:
- לחצו
Alt + F8
לפתיחת חלון המאקרואים. - בחרו מהרשימה את הפעולה הרצויה (
תיקון_אוטומטי_הוספת_ערך
וכו'). - לחצו על כפתור "הפעל" (Run).
- לחצו
- גישה מהירה ויעילה (מומלץ):
- ליעילות מרבית, מומלץ להקצות למאקרואים קיצורי מקשים, או להוסיף אותם ככפתורים בסרגל הכלים לגישה מהירה (Quick Access Toolbar). כך תוכלו להפעילם בלחיצת כפתור אחת.
- רשימת המאקרואים:
- תיקון_אוטומטי_הוספת_ערך
- תיקון_אוטומטי_הסרת_ערך
- תיקון_אוטומטי_ייצוא_רשימה_לטבלה
- תיקון_אוטומטי_ייבוא_מטבלה_שדרוג
- תיקון_אוטומטי_ייבוא_מטבלה_איפוס
ה
פרק 5: המאקרואים המלאים
להלן הקוד המלא עם הסבר מפורט עבור כל אחד מחמשת המאקרואים, מוכן להעתקה ולהדבקה בעורך ה-VBA.
מאקרו 1: הוספת ערך חדש עם כל התחיליות
מאקרו זה יציג שתי תיבות דו-שיח: בראשונה תזינו את המילה השגויה, ובשנייה את התיקון. לאחר אישור, הוא יוסיף את התיקון למילון, כולל גרסאות עם התחיליות הנפוצות (
ש, ו, ה, שה, כשה, מ, ד, ל, כ
) בפעולה אחת.Sub תיקון_אוטומטי_הוספת_ערך() Dim mila As String, tikun As String Dim prefixes As Variant, p As Variant prefixes = Array("ש", "ו", "ה", "שה", "כשה", "מ", "ד", "ל", "כ") mila = InputBox("הזן מילה שגויה (הפעולה תוסיף אוטומטית גם תחיליות):", "הוספה חכמה לתיקון אוטומטי") If mila = "" Then MsgBox "לא נבחרה מילה, הפעולה בוטלה!", vbMsgBoxRight + vbMsgBoxRtlReading + vbExclamation Exit Sub End If tikun = InputBox("רשום את המילה המתוקנת:", "הוספה חכמה לתיקון אוטומטי", mila) If tikun = "" Then MsgBox "לא נבחר תיקון, הפעולה בוטלה!", vbMsgBoxRight + vbMsgBoxRtlReading + vbExclamation Exit Sub End If AutoCorrect.Entries.Add Name:=mila, Value:=tikun For Each p In prefixes AutoCorrect.Entries.Add Name:=(p & mila), Value:=(p & tikun) Next p MsgBox "הערך '" & mila & "' וכל התחיליות הנלוות נוספו/עודכנו בהצלחה!", vbMsgBoxRight + vbMsgBoxRtlReading + vbInformation End Sub
מאקרו 2: הסרת ערך וכל נגזרותיו
טעיתם או שאתם רוצים לנקות ערך מסוים? מאקרו זה מבצע את הפעולה ההפוכה. הוא יבקש מכם להזין את המילה השגויה, וימחק אותה ואת כל הגרסאות שלה עם התחיליות מרשימת התיקון האוטומטי.
Sub תיקון_אוטומטי_הסרת_ערך() Dim mila_to_remove As String Dim prefixes As Variant, p As Variant Dim deletedCount As Long prefixes = Array("ש", "ו", "ה", "שה", "כשה", "מ", "ד", "ל", "כ") deletedCount = 0 mila_to_remove = InputBox("הזן את המילה השגויה להסרה (הפעולה תסיר גם את כל התחיליות):", "הסרה מלאה מתיקון אוטומטי") If mila_to_remove = "" Then Exit Sub On Error Resume Next AutoCorrect.Entries(mila_to_remove).Delete If Err.Number = 0 Then deletedCount = deletedCount + 1 End If Err.Clear For Each p In prefixes AutoCorrect.Entries(p & mila_to_remove).Delete If Err.Number = 0 Then deletedCount = deletedCount + 1 End If Err.Clear Next p On Error GoTo 0 If deletedCount > 0 Then MsgBox deletedCount & " רשומות הקשורות ל-'" & mila_to_remove & "' הוסרו בהצלחה.", _ vbInformation + vbMsgBoxRight + vbMsgBoxRtlReading, "ההסרה הושלמה" Else MsgBox "הערך '" & mila_to_remove & "' (וכל תחילית קשורה) לא נמצא ברשימת התיקונים האוטומטיים.", _ vbExclamation + vbMsgBoxRight + vbMsgBoxRtlReading, "לא נמצא ערך" End If End Sub
מאקרו 3: ייצוא המאגר המלא לטבלה
מאקרו זה סורק את כל רשימת התיקונים הקיימת ומייצא אותה לטבלה מסודרת במסמך הוורד הפעיל. מומלץ להפעיל אותו במסמך ריק. זהו הצעד הראשון לניהול מתקדם של המאגר.
טיפ חשוב: גיבוי הרשימה המקורית
לאחר יצירת הטבלה באמצעות מאקרו זה, ולפני שתפעילו את מאקרו 4 או 5, שמרו עותק של המסמך. קובץ זה ישמש כגיבוי בטוח של כל מאגר התיקונים המקורי שלכם, ותוכלו לחזור אליו בכל עת.Sub תיקון_אוטומטי_ייצוא_רשימה_לטבלה() Dim entry As AutoCorrectEntry Dim tbl As Table Dim msg As String Dim totalEntries As Long, i As Long If Not ActiveDocument Is Nothing Then msg = "מאקרו זה ייצור טבלה במסמך הנוכחי עם כל רשימת התיקונים האוטומטיים שלך." & vbCrLf & _ "מומלץ להפעיל אותו במסמך חדש וריק." & vbCrLf & vbCrLf & "להמשיך?" If MsgBox(msg, vbYesNo + vbInformation + vbMsgBoxRight + vbMsgBoxRtlReading, "ייצוא רשימה") = vbNo Then Exit Sub End If Application.ScreenUpdating = False totalEntries = Application.AutoCorrect.Entries.Count If totalEntries = 0 Then MsgBox "לא נמצאו רשומות תיקון אוטומטי לייצא.", _ vbInformation + vbMsgBoxRight + vbMsgBoxRtlReading, "אין רשומות" Application.ScreenUpdating = True Exit Sub End If Set tbl = ActiveDocument.Tables.Add(Range:=Selection.Range, NumRows:=totalEntries + 1, NumColumns:=2) With tbl .Borders.Enable = True .AllowAutoFit = False .Columns(1).SetWidth CentimetersToPoints(6), wdAdjustNone .Columns(2).SetWidth CentimetersToPoints(8), wdAdjustNone .Range.Cells.VerticalAlignment = wdAlignVerticalCenter .Rows.Alignment = wdAlignRowCenter With .Range.ParagraphFormat .SpaceBefore = 0 .SpaceAfter = 0 .LineSpacingRule = wdLineSpaceSingle End With End With With tbl.Rows(1) .Range.Font.Size = 14 .Range.Font.Bold = True .Range.Font.BoldBi = True .Range.ParagraphFormat.Alignment = wdAlignParagraphCenter .Shading.BackgroundPatternColor = wdColorGray15 .Cells(1).Range.Text = "החלף (טקסט שגוי)" .Cells(2).Range.Text = "ב- (טקסט מתוקן)" End With i = 1 For Each entry In Application.AutoCorrect.Entries i = i + 1 Application.StatusBar = "מייצא רשומה " & i - 1 & " מתוך " & totalEntries & "..." With tbl.Rows(i) .Range.Font.Bold = False .Range.Font.BoldBi = False .Range.Font.Size = 11 .Range.ParagraphFormat.Alignment = wdAlignParagraphRight If i Mod 2 = 0 Then .Shading.BackgroundPatternColor = wdColorGray05 End If .Cells(1).Range.Text = entry.Name .Cells(2).Range.Text = entry.Value End With Next entry Application.StatusBar = False Application.ScreenUpdating = True tbl.Select DoEvents Selection.Collapse Direction:=wdCollapseStart MsgBox totalEntries & " רשומות יוצאו בהצלחה לטבלה.", _ vbInformation + vbMsgBoxRight + vbMsgBoxRtlReading, "הייצוא הושלם" End If End Sub
מאקרו 4: שדרוג המאגר הקיים עם תחיליות
לאחר שייצאתם את הרשימה לטבלה, מאקרו זה מאפשר להוסיף תחיליות לערכים המופיעים בה.
טיפ לשימוש גמיש: באפשרותכם לערוך את הטבלה ולמחוק ממנה שורות של ערכים שאינכם רוצים להוסיף להם תחיליות. המאקרו יעבד רק את השורות שנותרו בטבלה, מה שמעניק לכם שליטה מלאה על תהליך השדרוג.
הערה חשובה: מאקרו זה פועל בבטחה – הוא אינו מוחק ערכים קיימים מהמילון, אלא רק מוסיף ומעדכן. המשמעות היא שאם ערך מהטבלה כבר קיים במאגר התיקונים שלכם, הוא יידרס ויעודכן לערך החדש שמופיע בטבלה. ערכים אחרים שאינם בטבלה לא יושפעו.
Sub תיקון_אוטומטי_ייבוא_מטבלה_שדרוג() Dim tbl As Table Dim i As Long Dim mila As String, tikun As String Dim prefixes As Variant, p As Variant Dim totalRows As Long, processedCount As Long, updatedCount As Long Dim isUpdate As Boolean If ActiveDocument.Tables.Count = 0 Then MsgBox "לא נמצאה טבלה במסמך הפעיל.", _ vbCritical + vbMsgBoxRight + vbMsgBoxRtlReading, "שגיאה: לא נמצאה טבלה" Exit Sub End If If MsgBox("מאקרו זה ישדרג את כל הערכים מהטבלה (יוסיף חדשים, יעדכן קיימים, ויוסיף לכולם תחיליות).", _ vbYesNo + vbQuestion + vbMsgBoxRight + vbMsgBoxRtlReading, "אישור שדרוג") = vbNo Then Exit Sub End If Application.ScreenUpdating = False prefixes = Array("ש", "ו", "ה", "שה", "כשה", "מ", "ד", "ל", "כ") Set tbl = ActiveDocument.Tables(1) totalRows = tbl.Rows.Count processedCount = 0 updatedCount = 0 For i = 2 To totalRows Application.StatusBar = "מעבד שורה " & i - 1 & " מתוך " & totalRows - 1 & "..." mila = Trim(Left(tbl.Cell(i, 1).Range.Text, Len(tbl.Cell(i, 1).Range.Text) - 2)) tikun = Trim(Left(tbl.Cell(i, 2).Range.Text, Len(tbl.Cell(i, 2).Range.Text) - 2)) If Len(mila) > 0 And Len(tikun) > 0 Then isUpdate = False On Error Resume Next Dim dummyValue As String dummyValue = AutoCorrect.Entries(mila).Value If Err.Number = 0 Then isUpdate = True End If Err.Clear On Error GoTo 0 If isUpdate Then updatedCount = updatedCount + 1 AutoCorrect.Entries(mila).Delete End If AutoCorrect.Entries.Add Name:=mila, Value:=tikun For Each p In prefixes On Error Resume Next AutoCorrect.Entries(p & mila).Delete On Error GoTo 0 AutoCorrect.Entries.Add Name:=(p & mila), Value:=(p & tikun) Next p processedCount = processedCount + 1 End If Next i Application.StatusBar = False Application.ScreenUpdating = True MsgBox "תהליך השדרוג הסתיים בהצלחה!" & vbCrLf & vbCrLf & _ processedCount & " ערכים מהטבלה עובדו." & vbCrLf & _ updatedCount & " מתוכם היו עדכונים לערכים קיימים.", _ vbInformation + vbMsgBoxRight + vbMsgBoxRtlReading, "השדרוג הושלם" End Sub
מאקרו 5: איפוס וייבוא מאגר נקי
מאקרו זה מיועד למי שרוצה "להתחיל דף נקי". הוא יחליף את כל מאגר התיקונים הקיים ברשימה חדשה, המבוססת אך ורק על הטבלה שיצרתם וערכתם.
שימו לב – פעולה זו בלתי הפיכה!
המאקרו מוחק לחלוטין את כל הרשימה הקיימת ובונה אותה מחדש מהטבלה (ללא הוספת תחיליות אוטומטית). אם תרצו להוסיף תחיליות לרשימה החדשה, פשוט הפעילו את מאקרו 4 מיד לאחר מכן.Sub תיקון_אוטומטי_ייבוא_מטבלה_איפוס() Dim tbl As Table Dim i As Long, j As Long ' הוספנו את j עבור לולאת המחיקה Dim totalRows As Long Dim mila As String, tikun As String Dim importedCount As Long, deletedCount As Long If ActiveDocument.Tables.Count = 0 Then MsgBox "לא נמצאה טבלה במסמך הפעיל.", _ vbCritical + vbMsgBoxRight + vbMsgBoxRtlReading, "שגיאה: לא נמצאה טבלה" Exit Sub End If If MsgBox("אזהרה!" & vbCrLf & vbCrLf & _ "פעולה זו תמחק **לחלוטין** את כל רשימת התיקונים הקיימת שלך, " & _ "ותחליף אותה רק בערכים מהטבלה." & vbCrLf & _ "הפעולה אינה ניתנת לביטול." & vbCrLf & vbCrLf & _ "האם אתה בטוח שברצונך להמשיך?", _ vbYesNo + vbCritical + vbDefaultButton2 + vbMsgBoxRight + vbMsgBoxRtlReading, _ "אישור איפוס מלא") = vbNo Then Exit Sub End If Application.ScreenUpdating = False deletedCount = AutoCorrect.Entries.Count For j = deletedCount To 1 Step -1 Application.StatusBar = "מוחק רשומה ישנה " & (deletedCount - j + 1) & " מתוך " & deletedCount & "..." AutoCorrect.Entries(j).Delete Next j Set tbl = ActiveDocument.Tables(1) totalRows = tbl.Rows.Count importedCount = 0 For i = 2 To totalRows Application.StatusBar = "מייבא רשומה " & i - 1 & " מתוך " & totalRows - 1 & "..." mila = Trim(Left(tbl.Cell(i, 1).Range.Text, Len(tbl.Cell(i, 1).Range.Text) - 2)) tikun = Trim(Left(tbl.Cell(i, 2).Range.Text, Len(tbl.Cell(i, 2).Range.Text) - 2)) If Len(mila) > 0 And Len(tikun) > 0 Then On Error Resume Next AutoCorrect.Entries.Add Name:=mila, Value:=tikun If Err.Number = 0 Then importedCount = importedCount + 1 Else Err.Clear End If On Error GoTo 0 End If Next i Application.StatusBar = False Application.ScreenUpdating = True MsgBox "התהליך הושלם בהצלחה!" & vbCrLf & vbCrLf & _ deletedCount & " רשומות ישנות נמחקו." & vbCrLf & _ importedCount & " רשומות חדשות יובאו מהטבלה.", _ vbInformation + vbMsgBoxRight + vbMsgBoxRtlReading, "איפוס וייבוא הושלמו" End Sub
בהצלחה!
@I-believe אולי תעשה מזה קובץ רגיל שמאפשר יבוא מאקרו?
-
סט מאקרואים לניהול תיקון השגיאות האוטומטי בוורד
בעקבות הרעיון הנפלא של @מענין-לשמוע, ששיתף כאן מאקרו בסיסי לניהול תיקון שגיאות בוורד, לקחתי את היוזמה ושדרגתי את הקוד.
במדריך זה תמצאו 5 מאקרואים שימושיים לניהול התיקון האוטומטי (AutoCorrect) בוורד. בשימוש נכון, הם יכולים לחסוך זמן יקר ולייעל את עבודתכם. המדריך כולל °הדרכה מפורטת°, צעד אחר צעד, המסבירה כיצד להשתמש בהם.
תוכן עניינים:
- פרק 1: הכרות עם כלי התיקון האוטומטי
- פרק 2: מגבלות הכלי ושדרוגו באמצעות מאקרואים
- פרק 3: שילוב המאקרואים בוורד
- פרק 4: הפעלת המאקרואים
- פרק 5: המאקרואים המלאים
א
פרק 1: הכרות עם כלי התיקון האוטומטי
לפני שנצלול למאקרואים, חשוב להבין מהו הכלי המובנה שאנחנו הולכים לשדרג. "התיקון האוטומטי" (AutoCorrect) הוא למעשה מילון אישי הפועל ברקע בזמן הכתיבה, במטרה לחסוך זמן ומאמץ על ידי ביצוע החלפות טקסט אוטומטיות.
איך זה עובד?
- תיקון שגיאות הקלדה: הקלדתם בטעות "עכשין"? וורד יתקן אוטומטית ל"עכשיו".
- הרחבת ראשי תיבות: במקום להקליד "בעזרת השם", ניתן להגדיר שהקיצור
בע"ה
יוחלף אוטומטית בטקסט המלא. - יצירת קיצורים אישיים: הגדירו קיצור כמו
מייל
והוא יוחלף בכתובת המייל המלאה שלכם.
איך מוסיפים ערך באופן ידני?
- בתפריט הראשי, היכנסו ל-
קובץ
>אפשרויות
. - בחלון שנפתח, עברו ללשונית
הגהה
. - לחצו על הכפתור
אפשרויות תיקון שגיאות אוטומטי...
. - בחלון שקפץ, ודאו שאתם בלשונית
תיקון שגיאות אוטומטי
. כעת תראו שתי תיבות:- החלף: כאן רושמים את הקיצור או הטקסט השגוי (לדוגמה:
בהכנ"ס
). - ב-: כאן רושמים את הטקסט המלא והנכון (לדוגמה:
בית הכנסת
).
- החלף: כאן רושמים את הקיצור או הטקסט השגוי (לדוגמה:
- לחצו על
הוספה
ולאחר מכןאישור
כדי לשמור את השינוי.
ב
פרק 2: מגבלות הכלי ושדרוגו באמצעות מאקרואים
השימוש הידני בכלי התיקון האוטומטי נתקל בשתי בעיות מרכזיות שהופכות אותו ללא יעיל בשימוש מתקדם:
- בעיית התחיליות בעברית: אם הגדרתם ש-
בהכנ"ס
יוחלף ב-בית הכנסת
, וורד לא ידע מה לעשות כשתקלידוובהכנ"ס
אושבהכנ"ס
. הוספה ידנית של כל צירוף אפשרי (ש
,ו
,ה
,כש
וכו') היא עבודה מייגעת. - קושי בניהול המאגר: ככל שהרשימה גדלה, קשה לנהל אותה. הממשק המובנה של וורד אינו מאפשר גיבוי נוח, עריכה מרוכזת של ערכים, או קבלת תמונה מלאה של כל המאגר הקיים.
המאקרואים הבאים מציעים פתרון לבעיות אלו:
-
מאקרו 1 (הוספה) ומאקרו 2 (הסרה): אלו הם כלים לשימוש יומיומי ומהיר. הם מאפשרים להוסיף או להסיר ערך בודד יחד עם כל התחיליות שלו בפעולה אחת.
-
מאקרו 3 (ייצוא), מאקרו 4 (שדרוג) ומאקרו 5 (איפוס): אלו כלים לניהול מתקדם של המאגר. הם מאפשרים לייצא את כל הרשימה לטבלה נוחה, לערוך, לגבות, ואז לבחור אם לשדרג את המאגר הקיים (להוסיף תחיליות לערכים) או לאפס אותו ולייבא רשימה חדשה ונקייה.
כעת, לאחר שהבנו את ההיגיון, ניגש לשלב הבא.
ג
פרק 3: שילוב המאקרואים בוורד
כדי לשלב את המאקרואים בסביבת העבודה שלכם, נדרשת פעולה חד-פעמית. לאחר מכן, הם יהיו זמינים באופן קבוע בכל מסמכי הוורד שתפתחו. קיימות שתי שיטות לעשות זאת:
שיטה 1: הוספה ידנית של הקוד
זו הדרך הקלאסית, שבה אתם מעתיקים את הקוד ישירות לתוך עורך המאקרואים של וורד.
- פתיחת עורך הקוד (VBA): לחצו על
Alt + F11
במקלדת. - איתור התבנית הגלובלית (Normal): בחלונית השמאלית ("Project"), אתרו את הפרויקט Normal.
- פתיחת מודול חדש:
- תחת
Normal
, לחצו על ה-+
ליד תיקייתModules
. - לחצו לחיצה כפולה על NewMacros.
- אם המודול או התיקייה לא קיימים, לחצו קליק ימני על
Normal
ובחרוInsert
>Module
.
- תחת
- הדבקת הקוד: בחלון הלבן הגדול שייפתח, הדביקו את כל חמשת קטעי הקוד של המאקרואים מפרק 5.
- שמירה ויציאה: סגרו את חלון העורך (
Alt + F11
). וורד ישמור את השינויים אוטומטית.
שיטה 2: שימוש בקובץ תבנית מוכן
למי שמעדיף להימנע מהתעסקות עם קוד, הכנתי קובץ התקנה אוטומטי (
.dotm
) המכיל את כל המאקרואים.- הורידו את קובץ התבנית: תיקון שגיאות אוטומטי 2.dotm
- פתחו את תיקיית ה-STARTUP של וורד:
- לחצו
מקש ווינדוס + R
לפתיחת חלון "הפעלה". - הדביקו את הנתיב הבא ולחצו
אישור
:
%appdata%\Microsoft\Word\STARTUP
- זהו נתיב מיוחד בו וורד טוען באופן אוטומטי כל תבנית (
.dotm
) בעת ההפעלה, מה שהופך את המאקרואים לזמינים בכל המסמכים.
- לחצו
- העבירו את הקובץ לתיקייה: גררו או העתיקו את קובץ ה-
.dotm
שהורדתם לתיקייתSTARTUP
. - הפעילו את וורד מחדש: סגרו את כל חלונות וורד והפעילו אותו שוב.
וזהו! המאקרואים זמינים כעת לשימושכם.
ד
פרק 4: הפעלת המאקרואים
לאחר שהוספתם את המאקרואים, ניתן להפעיל אותם באופן הבא:
- הפעלה דרך תפריט המאקרואים:
- לחצו
Alt + F8
לפתיחת חלון המאקרואים. - בחרו מהרשימה את הפעולה הרצויה (
תיקון_אוטומטי_הוספת_ערך
וכו'). - לחצו על כפתור "הפעל" (Run).
- לחצו
- גישה מהירה ויעילה (מומלץ):
- ליעילות מרבית, מומלץ להקצות למאקרואים קיצורי מקשים, או להוסיף אותם ככפתורים בסרגל הכלים לגישה מהירה (Quick Access Toolbar). כך תוכלו להפעילם בלחיצת כפתור אחת.
- רשימת המאקרואים:
- תיקון_אוטומטי_הוספת_ערך
- תיקון_אוטומטי_הסרת_ערך
- תיקון_אוטומטי_ייצוא_רשימה_לטבלה
- תיקון_אוטומטי_ייבוא_מטבלה_שדרוג
- תיקון_אוטומטי_ייבוא_מטבלה_איפוס
ה
פרק 5: המאקרואים המלאים
להלן הקוד המלא עם הסבר מפורט עבור כל אחד מחמשת המאקרואים, מוכן להעתקה ולהדבקה בעורך ה-VBA.
מאקרו 1: הוספת ערך חדש עם כל התחיליות
מאקרו זה יציג שתי תיבות דו-שיח: בראשונה תזינו את המילה השגויה, ובשנייה את התיקון. לאחר אישור, הוא יוסיף את התיקון למילון, כולל גרסאות עם התחיליות הנפוצות (
ש, ו, ה, שה, כשה, מ, ד, ל, כ
) בפעולה אחת.Sub תיקון_אוטומטי_הוספת_ערך() Dim mila As String, tikun As String Dim prefixes As Variant, p As Variant prefixes = Array("ש", "ו", "ה", "שה", "כשה", "מ", "ד", "ל", "כ") mila = InputBox("הזן מילה שגויה (הפעולה תוסיף אוטומטית גם תחיליות):", "הוספה חכמה לתיקון אוטומטי") If mila = "" Then MsgBox "לא נבחרה מילה, הפעולה בוטלה!", vbMsgBoxRight + vbMsgBoxRtlReading + vbExclamation Exit Sub End If tikun = InputBox("רשום את המילה המתוקנת:", "הוספה חכמה לתיקון אוטומטי", mila) If tikun = "" Then MsgBox "לא נבחר תיקון, הפעולה בוטלה!", vbMsgBoxRight + vbMsgBoxRtlReading + vbExclamation Exit Sub End If AutoCorrect.Entries.Add Name:=mila, Value:=tikun For Each p In prefixes AutoCorrect.Entries.Add Name:=(p & mila), Value:=(p & tikun) Next p MsgBox "הערך '" & mila & "' וכל התחיליות הנלוות נוספו/עודכנו בהצלחה!", vbMsgBoxRight + vbMsgBoxRtlReading + vbInformation End Sub
מאקרו 2: הסרת ערך וכל נגזרותיו
טעיתם או שאתם רוצים לנקות ערך מסוים? מאקרו זה מבצע את הפעולה ההפוכה. הוא יבקש מכם להזין את המילה השגויה, וימחק אותה ואת כל הגרסאות שלה עם התחיליות מרשימת התיקון האוטומטי.
Sub תיקון_אוטומטי_הסרת_ערך() Dim mila_to_remove As String Dim prefixes As Variant, p As Variant Dim deletedCount As Long prefixes = Array("ש", "ו", "ה", "שה", "כשה", "מ", "ד", "ל", "כ") deletedCount = 0 mila_to_remove = InputBox("הזן את המילה השגויה להסרה (הפעולה תסיר גם את כל התחיליות):", "הסרה מלאה מתיקון אוטומטי") If mila_to_remove = "" Then Exit Sub On Error Resume Next AutoCorrect.Entries(mila_to_remove).Delete If Err.Number = 0 Then deletedCount = deletedCount + 1 End If Err.Clear For Each p In prefixes AutoCorrect.Entries(p & mila_to_remove).Delete If Err.Number = 0 Then deletedCount = deletedCount + 1 End If Err.Clear Next p On Error GoTo 0 If deletedCount > 0 Then MsgBox deletedCount & " רשומות הקשורות ל-'" & mila_to_remove & "' הוסרו בהצלחה.", _ vbInformation + vbMsgBoxRight + vbMsgBoxRtlReading, "ההסרה הושלמה" Else MsgBox "הערך '" & mila_to_remove & "' (וכל תחילית קשורה) לא נמצא ברשימת התיקונים האוטומטיים.", _ vbExclamation + vbMsgBoxRight + vbMsgBoxRtlReading, "לא נמצא ערך" End If End Sub
מאקרו 3: ייצוא המאגר המלא לטבלה
מאקרו זה סורק את כל רשימת התיקונים הקיימת ומייצא אותה לטבלה מסודרת במסמך הוורד הפעיל. מומלץ להפעיל אותו במסמך ריק. זהו הצעד הראשון לניהול מתקדם של המאגר.
טיפ חשוב: גיבוי הרשימה המקורית
לאחר יצירת הטבלה באמצעות מאקרו זה, ולפני שתפעילו את מאקרו 4 או 5, שמרו עותק של המסמך. קובץ זה ישמש כגיבוי בטוח של כל מאגר התיקונים המקורי שלכם, ותוכלו לחזור אליו בכל עת.Sub תיקון_אוטומטי_ייצוא_רשימה_לטבלה() Dim entry As AutoCorrectEntry Dim tbl As Table Dim msg As String Dim totalEntries As Long, i As Long If Not ActiveDocument Is Nothing Then msg = "מאקרו זה ייצור טבלה במסמך הנוכחי עם כל רשימת התיקונים האוטומטיים שלך." & vbCrLf & _ "מומלץ להפעיל אותו במסמך חדש וריק." & vbCrLf & vbCrLf & "להמשיך?" If MsgBox(msg, vbYesNo + vbInformation + vbMsgBoxRight + vbMsgBoxRtlReading, "ייצוא רשימה") = vbNo Then Exit Sub End If Application.ScreenUpdating = False totalEntries = Application.AutoCorrect.Entries.Count If totalEntries = 0 Then MsgBox "לא נמצאו רשומות תיקון אוטומטי לייצא.", _ vbInformation + vbMsgBoxRight + vbMsgBoxRtlReading, "אין רשומות" Application.ScreenUpdating = True Exit Sub End If Set tbl = ActiveDocument.Tables.Add(Range:=Selection.Range, NumRows:=totalEntries + 1, NumColumns:=2) With tbl .Borders.Enable = True .AllowAutoFit = False .Columns(1).SetWidth CentimetersToPoints(6), wdAdjustNone .Columns(2).SetWidth CentimetersToPoints(8), wdAdjustNone .Range.Cells.VerticalAlignment = wdAlignVerticalCenter .Rows.Alignment = wdAlignRowCenter With .Range.ParagraphFormat .SpaceBefore = 0 .SpaceAfter = 0 .LineSpacingRule = wdLineSpaceSingle End With End With With tbl.Rows(1) .Range.Font.Size = 14 .Range.Font.Bold = True .Range.Font.BoldBi = True .Range.ParagraphFormat.Alignment = wdAlignParagraphCenter .Shading.BackgroundPatternColor = wdColorGray15 .Cells(1).Range.Text = "החלף (טקסט שגוי)" .Cells(2).Range.Text = "ב- (טקסט מתוקן)" End With i = 1 For Each entry In Application.AutoCorrect.Entries i = i + 1 Application.StatusBar = "מייצא רשומה " & i - 1 & " מתוך " & totalEntries & "..." With tbl.Rows(i) .Range.Font.Bold = False .Range.Font.BoldBi = False .Range.Font.Size = 11 .Range.ParagraphFormat.Alignment = wdAlignParagraphRight If i Mod 2 = 0 Then .Shading.BackgroundPatternColor = wdColorGray05 End If .Cells(1).Range.Text = entry.Name .Cells(2).Range.Text = entry.Value End With Next entry Application.StatusBar = False Application.ScreenUpdating = True tbl.Select DoEvents Selection.Collapse Direction:=wdCollapseStart MsgBox totalEntries & " רשומות יוצאו בהצלחה לטבלה.", _ vbInformation + vbMsgBoxRight + vbMsgBoxRtlReading, "הייצוא הושלם" End If End Sub
מאקרו 4: שדרוג המאגר הקיים עם תחיליות
לאחר שייצאתם את הרשימה לטבלה, מאקרו זה מאפשר להוסיף תחיליות לערכים המופיעים בה.
טיפ לשימוש גמיש: באפשרותכם לערוך את הטבלה ולמחוק ממנה שורות של ערכים שאינכם רוצים להוסיף להם תחיליות. המאקרו יעבד רק את השורות שנותרו בטבלה, מה שמעניק לכם שליטה מלאה על תהליך השדרוג.
הערה חשובה: מאקרו זה פועל בבטחה – הוא אינו מוחק ערכים קיימים מהמילון, אלא רק מוסיף ומעדכן. המשמעות היא שאם ערך מהטבלה כבר קיים במאגר התיקונים שלכם, הוא יידרס ויעודכן לערך החדש שמופיע בטבלה. ערכים אחרים שאינם בטבלה לא יושפעו.
Sub תיקון_אוטומטי_ייבוא_מטבלה_שדרוג() Dim tbl As Table Dim i As Long Dim mila As String, tikun As String Dim prefixes As Variant, p As Variant Dim totalRows As Long, processedCount As Long, updatedCount As Long Dim isUpdate As Boolean If ActiveDocument.Tables.Count = 0 Then MsgBox "לא נמצאה טבלה במסמך הפעיל.", _ vbCritical + vbMsgBoxRight + vbMsgBoxRtlReading, "שגיאה: לא נמצאה טבלה" Exit Sub End If If MsgBox("מאקרו זה ישדרג את כל הערכים מהטבלה (יוסיף חדשים, יעדכן קיימים, ויוסיף לכולם תחיליות).", _ vbYesNo + vbQuestion + vbMsgBoxRight + vbMsgBoxRtlReading, "אישור שדרוג") = vbNo Then Exit Sub End If Application.ScreenUpdating = False prefixes = Array("ש", "ו", "ה", "שה", "כשה", "מ", "ד", "ל", "כ") Set tbl = ActiveDocument.Tables(1) totalRows = tbl.Rows.Count processedCount = 0 updatedCount = 0 For i = 2 To totalRows Application.StatusBar = "מעבד שורה " & i - 1 & " מתוך " & totalRows - 1 & "..." mila = Trim(Left(tbl.Cell(i, 1).Range.Text, Len(tbl.Cell(i, 1).Range.Text) - 2)) tikun = Trim(Left(tbl.Cell(i, 2).Range.Text, Len(tbl.Cell(i, 2).Range.Text) - 2)) If Len(mila) > 0 And Len(tikun) > 0 Then isUpdate = False On Error Resume Next Dim dummyValue As String dummyValue = AutoCorrect.Entries(mila).Value If Err.Number = 0 Then isUpdate = True End If Err.Clear On Error GoTo 0 If isUpdate Then updatedCount = updatedCount + 1 AutoCorrect.Entries(mila).Delete End If AutoCorrect.Entries.Add Name:=mila, Value:=tikun For Each p In prefixes On Error Resume Next AutoCorrect.Entries(p & mila).Delete On Error GoTo 0 AutoCorrect.Entries.Add Name:=(p & mila), Value:=(p & tikun) Next p processedCount = processedCount + 1 End If Next i Application.StatusBar = False Application.ScreenUpdating = True MsgBox "תהליך השדרוג הסתיים בהצלחה!" & vbCrLf & vbCrLf & _ processedCount & " ערכים מהטבלה עובדו." & vbCrLf & _ updatedCount & " מתוכם היו עדכונים לערכים קיימים.", _ vbInformation + vbMsgBoxRight + vbMsgBoxRtlReading, "השדרוג הושלם" End Sub
מאקרו 5: איפוס וייבוא מאגר נקי
מאקרו זה מיועד למי שרוצה "להתחיל דף נקי". הוא יחליף את כל מאגר התיקונים הקיים ברשימה חדשה, המבוססת אך ורק על הטבלה שיצרתם וערכתם.
שימו לב – פעולה זו בלתי הפיכה!
המאקרו מוחק לחלוטין את כל הרשימה הקיימת ובונה אותה מחדש מהטבלה (ללא הוספת תחיליות אוטומטית). אם תרצו להוסיף תחיליות לרשימה החדשה, פשוט הפעילו את מאקרו 4 מיד לאחר מכן.Sub תיקון_אוטומטי_ייבוא_מטבלה_איפוס() Dim tbl As Table Dim i As Long, j As Long ' הוספנו את j עבור לולאת המחיקה Dim totalRows As Long Dim mila As String, tikun As String Dim importedCount As Long, deletedCount As Long If ActiveDocument.Tables.Count = 0 Then MsgBox "לא נמצאה טבלה במסמך הפעיל.", _ vbCritical + vbMsgBoxRight + vbMsgBoxRtlReading, "שגיאה: לא נמצאה טבלה" Exit Sub End If If MsgBox("אזהרה!" & vbCrLf & vbCrLf & _ "פעולה זו תמחק **לחלוטין** את כל רשימת התיקונים הקיימת שלך, " & _ "ותחליף אותה רק בערכים מהטבלה." & vbCrLf & _ "הפעולה אינה ניתנת לביטול." & vbCrLf & vbCrLf & _ "האם אתה בטוח שברצונך להמשיך?", _ vbYesNo + vbCritical + vbDefaultButton2 + vbMsgBoxRight + vbMsgBoxRtlReading, _ "אישור איפוס מלא") = vbNo Then Exit Sub End If Application.ScreenUpdating = False deletedCount = AutoCorrect.Entries.Count For j = deletedCount To 1 Step -1 Application.StatusBar = "מוחק רשומה ישנה " & (deletedCount - j + 1) & " מתוך " & deletedCount & "..." AutoCorrect.Entries(j).Delete Next j Set tbl = ActiveDocument.Tables(1) totalRows = tbl.Rows.Count importedCount = 0 For i = 2 To totalRows Application.StatusBar = "מייבא רשומה " & i - 1 & " מתוך " & totalRows - 1 & "..." mila = Trim(Left(tbl.Cell(i, 1).Range.Text, Len(tbl.Cell(i, 1).Range.Text) - 2)) tikun = Trim(Left(tbl.Cell(i, 2).Range.Text, Len(tbl.Cell(i, 2).Range.Text) - 2)) If Len(mila) > 0 And Len(tikun) > 0 Then On Error Resume Next AutoCorrect.Entries.Add Name:=mila, Value:=tikun If Err.Number = 0 Then importedCount = importedCount + 1 Else Err.Clear End If On Error GoTo 0 End If Next i Application.StatusBar = False Application.ScreenUpdating = True MsgBox "התהליך הושלם בהצלחה!" & vbCrLf & vbCrLf & _ deletedCount & " רשומות ישנות נמחקו." & vbCrLf & _ importedCount & " רשומות חדשות יובאו מהטבלה.", _ vbInformation + vbMsgBoxRight + vbMsgBoxRtlReading, "איפוס וייבוא הושלמו" End Sub
בהצלחה!
@I-believe ומה לגבי כל מה שכבר הוספתי עד היום?
תוכל לשדרג אותו שיעבוד גם על מה שכבר קיים? -
-
@I-believe אולי תעשה מזה קובץ רגיל שמאפשר יבוא מאקרו?
@צדיק-וטוב-לו-0 כתב במדריך | שימוש מתקדם בתיקון שגיאות אוטומטי של וורד:
@I-believe אולי תעשה מזה קובץ רגיל שמאפשר יבוא מאקרו?
הוספתי קובץ לייבוא - שיטה 2: התקנה אוטומטית באמצעות תבנית
-
@I-believe ומה לגבי כל מה שכבר הוספתי עד היום?
תוכל לשדרג אותו שיעבוד גם על מה שכבר קיים?@יום-חדש-מתחיל כתב במדריך | שימוש מתקדם בתיקון שגיאות אוטומטי של וורד:
@I-believe ומה לגבי כל מה שכבר הוספתי עד היום?
תוכל לשדרג אותו שיעבוד גם על מה שכבר קיים?יש לי פתרון עבורך, ייקח קצת זמן...
-
עדכנתי את המדריך באופן משמעותי.
עיקרי העדכון:
- נוספו 3 מאקרואים חדשים לניהול מתקדם: כעת ניתן לייצא את כל מאגר התיקונים לטבלה, לשדרג אותו באופן גורף עם תחיליות, או לאפס אותו.
- שיפור וליטוש של שני המאקרואים המקוריים לקבלת משוב מדויק וחכם יותר למשתמש.
- קובץ תבנית (.dotm) חדש ומעודכן הכולל את כל 5 המאקרואים, ומוכן לשימוש מיידי.
מוזמנים לעבור על המדריך המעודכן ולשדרג את אופן העבודה שלכם.
בהצלחה!