בקשת מידע מקרו בוורד שיהפוך לי מ1 ל2 ומ2 ל1.
-
-
@מלאכת-מחשבת הקוד להחלפה במאקרו הוא פשוט:
Sub Macro1() ' ' Macro1 Macro ' ' 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 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 End Sub אתה יכול לראות שיש כאן שני קטעי קוד כפולים, כל אחד להחלפה שונה לדוגמא בקטע הראשון (8-23):
בשורה 9 המילה המקורית ובשורה 10 המילה החדשה, בכל השאר אין צורך להתערב -
-
@menis אמר בבקשת מידע | מקרו בוורד שיהפוך לי מ1 ל2 ומ2 ל1.:
הקוד להחלפה במאקרו הוא פשוט:
בכלל לא פותר את הבעיה....
-
@מלאכת-מחשבת אמר בבקשת מידע | מקרו בוורד שיהפוך לי מ1 ל2 ומ2 ל1.:
@menis שאילתי האם יש אופציה להכניס בתיבת חיפוש מילה שלמעשה מילה זו היא תוצאת ההחלף של מילה אחרת , ויותר שבכל לחיצה נוספת היא תהפוך לי את המילה בחזרה וכן איך אוכל להכניס כמה מילים בשורת החפש וכנגדם כמה מילים בשורת ההחלף ב...
כמה שידוע לי אין בוורד אפשרות לחפש מילה א או מילה ב אלא רק את כל הטקסט של החיפוש יחד,
חשבתי אולי לעשות לולאה שעוברת על כל המילים במסמך ובודקת האם המילה שייכת לאחד הערכים הרצויים והופכת אותה למילה שכנגד, השאלה היא, האם אתה מעוניין לחפש גם צמדי מילים ולהפוך אותם (כגון לחפש בבא-קמא ולהפוך לב"ק), כי הלולאה הנ"ל עוברת רק על מילים בודדות (מילה אחר מילה), ולא מבצעת חיפוש כמו ה"חפש" של וורד. -
@dmp "בבא-קמא" עם פס הוא גם לא יחפש?
מקסימום אפשר להחליף ולאחמ"כ להחליף בחזרה.. וגם אני אשמח אם תוכל להביא לנו דוגמא מכזה דבר... -
-
@dmp אם בלולאה אוכל להחליף מילה אחד לשתים ושתים לאחד בלי שהשתים שהחלפתי מאחד ישתנה, אשמח אם תוכל לבצע כזה פעולה...
-
@מלאכת-מחשבת תנסה את זה ותעדכן עם עובד
For Each w In ActiveDocument.Words Select Case w Case "1": w.Text = "2" Case "2": w.Text = "1" Case "3": w.Text = "4" Case "4": w.Text = "3" End Select Next כמובן תחליף את המספרים למילים שאתה רוצה.
שים לב שיש לכתוב כל מילה פעמיים כמו בדוגמא.
אם זה נתקע תנסה עם רווח לפני או אחרי המילה -
@dmp זה תוקע לי את כל המחשב, ניסיתי דבר ראשון בלי להחליף רק כפשוטו 1 2 3 4 וזה תוקע לי את הכל.
נראה לי שהוא נתקע כי הוא מחליף את 1 ל2 ואח"כ מחפש את 2 להחליף ל1 ומחליף גם את זה שהוחלף עתה וע"כ חוזר לתחילה ומחליף את ה1 ל2 וחוזר חלילה עד סוף כל הדורות... -
@מלאכת-מחשבת אמר בבקשת מידע | מקרו בוורד שיהפוך לי מ1 ל2 ומ2 ל1.:
@dmp זה תוקע לי את כל המחשב, ניסיתי דבר ראשון בלי להחליף רק כפשוטו 1 2 3 4 וזה תוקע לי את הכל.
נראה לי שהוא נתקע כי הוא מחליף את 1 ל2 ואח"כ מחפש את 2 להחליף ל1 ומחליף גם את זה שהוחלף עתה וע"כ חוזר לתחילה ומחליף את ה1 ל2 וחוזר חלילה עד סוף כל הדורות...ממש לא.
המאקרו עובר מילה מילה ובודק האם היא זהה לאחד הערכים בשורות 3-6, ואם כן, מבצע החלפה.
מה שאפשר לנסות זה:
א. להפעיל בקובץ קצר שיקח מהר לעבור על הכל.
ב. לעבור לתצוגת טיוטה.
ג. לא להפעיל מיד עם פתיחת המסמך אלא לעשות עריכה כל שהיא (ואפשר למחוק מיד) ואח"כ להפעיל את המאקרו. (כלל זה חשוב לכל מאקרו שמבצע שינויים במסמך שאין להפעילו מיד). -
@dmp אני ניסיתי עכשיו "עוד פעם" וזה תוקע לי את הכל.
-
@dmp גם לי נתקע כנ"ל,
(וכן ניסיתי לעבור אחד אחד באמצעות F8 ומשם ראיתי שזה כנ"ל) -
@מלאכת-מחשבת צודק!!!
בדקתי עכשיו וזה אכן נתקע, אבל בנוסח הזה זה אכן עובדFor i = 1 To ActiveDocument.Words.Count Set w = ActiveDocument.Words(i) Select Case w Case "1 ": w.Text = "2 " Case "2 ": w.Text = "1 " Case "3 ": w.Text = "4 " Case "4 ": w.Text = "3 " End Select Next -
@dmp עובד!
-
@dmp מעולה!
האם תוכל לעבור על מה שכתבתי כאן https://mitmachim.top/post/363091 ? -
@מגדלים לכאורה בסוף פיסקה זה לא יזהה את המילה (כי הוא מחפש מילה כולל הרווח שאחריה),
ועל כן מומלץ להוסיף לפני זה קוד שמחליף סימון פיסקה לרווח וסימון פיסקה, ואח"כ את הלולאה הנ"ל, ובסוף קוד של החלפה הפוכה (סימון פיסקה ורווח לסימון פיסקה בלבד). -
9/17