@ששמעון תכניס את הקוד הבא לתך פקודת מאקרו
Selection.Text = "(" & Selection.Text & ")"
@ששמעון תכניס את הקוד הבא לתך פקודת מאקרו
Selection.Text = "(" & Selection.Text & ")"
@הלוי-כהן אמר בחיפוש מספרי תחנות:
תודה רבה לכל היוצרים והעורכים וכו,
לא הבנתי למה המעבר לקל קו הוא בכפתור נפרד
נראה לי עוד יותר נוח ומועיל, שאחרי החיפוש תהיה אפשרות-
"חיפוש בקל קו" (1700707050P1P - ואז את מספר התחנה שנבחרה - ו-#)
וכך ישאר למחפש רק לבחור את הקו שהוא צריך.
אני לא יודע לערוך את הקבצים אבל אם מישהו יודע
אולי כדאי שיעשה את זה ויועיל מאד לי ולכולם
תודה.
גם אני מצטרף לרעיון.
הדרך לעשות את זה לכאורה היא לעבור שורה שורה ברשימת התחנות ולהוסיף שיתקשר למספר 1700707050,1,00000#
כשבסוף צריך להכניס כל פעם את מספר התחנה הספציפי במקום 000000 , שזה דורש המון עבודה אלא אם כן מצליחים לעשות החלפה כל שהיא וכדו'.
תודה למי שיסייע בעניין.
יש לי ניסיון עם הרבה פקודות מאקרו שכתבתי בעבר בכל מיני נושאים,
אשמח לעזור לך אם תפרט בצורה ברורה מה אתה רוצה לעשות.
@מגדלים תחליף את השורה הבאה:
.Wrap = wdFindAsk
לקוד זה:
.Wrap = wdFindStop
שים לב שאם לא נבחר שום טקסט הפקודה כן תחול על כל המסמך (מנקודה זו ואילך), ולכן צריך להוסיף את השורה הבאה בתחילת הקוד
If Selection.Start = Selection.End Then Exit Sub
וכבר כתבתי לעיל שבהחלפה זו מסתבכים עם מילים בר"ת...
@משהו-חדש פשוט מאד, אתה משתמש בקובץ הנ"ל ונכנס לכותרת עליונה ומגדיר באפשרויות "כותרת שונה לעמוד זוגי ואי זוגי", בשלב זה הכותרות הזוגיות יעלמו לך, ואז צריך פשוט להעתיק את המספר עמוד מהאי זוגי לזוגי, וזהו...
@ששמעון תנסה בפורמט פקטורי.
@מלאכת-מחשבת אמר בבקשת מידע | מקרו בוורד שיהפוך לי מ1 ל2 ומ2 ל1.:
@menis שאילתי האם יש אופציה להכניס בתיבת חיפוש מילה שלמעשה מילה זו היא תוצאת ההחלף של מילה אחרת , ויותר שבכל לחיצה נוספת היא תהפוך לי את המילה בחזרה וכן איך אוכל להכניס כמה מילים בשורת החפש וכנגדם כמה מילים בשורת ההחלף ב...
כמה שידוע לי אין בוורד אפשרות לחפש מילה א או מילה ב אלא רק את כל הטקסט של החיפוש יחד,
חשבתי אולי לעשות לולאה שעוברת על כל המילים במסמך ובודקת האם המילה שייכת לאחד הערכים הרצויים והופכת אותה למילה שכנגד, השאלה היא, האם אתה מעוניין לחפש גם צמדי מילים ולהפוך אותם (כגון לחפש בבא-קמא ולהפוך לב"ק), כי הלולאה הנ"ל עוברת רק על מילים בודדות (מילה אחר מילה), ולא מבצעת חיפוש כמו ה"חפש" של וורד.
@מלאכת-מחשבת צודק!!!
בדקתי עכשיו וזה אכן נתקע, אבל בנוסח הזה זה אכן עובד
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
@מגדלים לכאורה בסוף פיסקה זה לא יזהה את המילה (כי הוא מחפש מילה כולל הרווח שאחריה),
ועל כן מומלץ להוסיף לפני זה קוד שמחליף סימון פיסקה לרווח וסימון פיסקה, ואח"כ את הלולאה הנ"ל, ובסוף קוד של החלפה הפוכה (סימון פיסקה ורווח לסימון פיסקה בלבד).
@מלאכת-מחשבת אמר בעזרה | פתרונות בוורד:
אולי תביא כמה דוגמאות ונוכל להפיק לקחים מזה?...
הנה
Sub úéáú_äåãòä_åãéìåâ_ìîé÷åí_á÷åã()
1
a = MsgBox("האם ברצונך לחזור על הפעולה?", vbQuestion + vbYesNo, "מתמחים טופ:-)")
If a = vbYes Then GoTo 1
End Sub
@מלאכת-מחשבת אמר בעזרה | פתרונות בוורד:
איך אוכל במאקרו לעשות בוורד שכאני לוחץ עליו נפתח כזה מגירה (לא יודע איך להגדיר
), ושם מביא לי כמה מאקרוים ואני בוחר איזה אני רוצה?
אפשר ליצור טופס (כמו תיבת דו שיח של וורד) ולהוסיף לו לחצנים שיבצעו את המקרואים הרצויים, אבל זה מסבך קצת את העבודה עם הוורד, וגם אפשר בקלות ליצור כרטיסיה מותאמת אישית בוורד שתכיל את הפקודות שאתם אוהבים.
@מלאכת-מחשבת אנסה על רגל אחת...
הפונקציה MsgBox מציגה למשתמש תיבת הודעה ומחזירה את הערך שהמשתמש בחר,
ניתן לשמור את הערך בתוך משתנה ולהשתמש בו על מנת להחליט על המשך פעילות המאקרו.
לפונקציה יש מספר ארגומנטים שיש להזין, הראשון הינו הכרחי והוא הטקסט שיופיע בתיבת ההודעה. השני הינו סגנון תיבת ההודעה כמו סוג הכפתורים, עיצוב אזהרה/שאלה/מידע, מימין לשמאל או להיפך וכדו', ניתן לראות את כל האפשרויות בקישור שהבאתי לעיל, (במקרה שלא נבחר סגנון יופיע ברירת המחדל עם כפתור אישור בלבד). השלישי הינו כותרת ההודעה (אופציונלי).
לאחר מכן יש להשתמש ב"משפטי התנאים" של visual basic כדי להחליט מה לעשות עם מה שהמשתמש בחר, (שזה כמובן נושא בפני עצמו), וכן לפעמים יש להשתמש ב goto כדי לדלג למקום אחר, וכמו בדוגמא שהבאתי לעיל.
ואידך זיל גמור...
@מגדלים @מלאכת-מחשבת יתכן זהו פתרון, אבל צריך לשים לב לעובדה שוורד מחשיב מילה עם תו מיוחד באמצע כגון רמב"ם לשתי מילים, ולכן צריך לחפש רווח שאחריו תו בודד וכן סימון פיסקה שאחריו תו (כמדומני שזה ^13) ולהחליף, ע"פ הנ"ל.
כמו"כ עליך לחשב מראש מה אתה מתכונן לעשות במילה שמתחילה "במרכאות" או (סוגריים) האם להתעלם לגמרי או לסמן את האות שאחרי התו המדובר, ואם כן יש לעשות עוד החלפה שתתיחס לזה.
אם הצלחת להקליט איזשהו רצף של החלפות שעונה לתוצאה הנ"ל תוכל להעלות כאן את הקוד ואשמח לשפץ מה שצריך כדי לנטרל באגים וכדו' וכדי להאיץ את פעילות הפקודה
@dmp אמר בעזרה | פתרונות בוורד:
וכבר כתבתי לעיל שבהחלפה זו מסתבכים עם מילים בר"ת...
כעת חשבתי שהפתרון לזה הוא פשוט, צריך לחפש את הנ"ל עם רווח לפני המילה ואז החיפוש לא מתייחס לר"ת באמצע מילה.
ככה:
.Text = " <[א-ת]"
וכן בהחלף ב: להוסיף רווח לפני הקידוד הראשון, לדוגמא:
.Replacement.Text = " $^&$"
תעדכנו עם עבד...
לגבי תחילת פיסקה צריך לחפש
.Text = "^13<[א-ת]"
@מגדלים זה לכאורה הקוד המלא והנכון
Sub קידוד_בתחילת_מילה()
'חיפוש רווח ותחילת מילה
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = " (<[א-ת])"
.Replacement.Text = " $\1$"
.Forward = True
.Wrap = wdFindStop
.Format = False
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
'חיפוש סוף פיסקה ותחילת מילה
Selection.Find.Text = "^13(<[א-ת])"
Selection.Find.Replacement.Text = "^13$\1$"
Selection.Find.Execute Replace:=wdReplaceAll
End Sub
@מגדלים הצלחתי!!!
Dim MyRange As Range
Set MyRange = ActiveDocument.Range(Selection.Start - 1, Selection.Start)
If MyRange.Text = Chr(13) Or MyRange.Text = " " Then
Set MyRange = ActiveDocument.Range(Selection.Start - 1, Selection.End)
MyRange.Select
End If
להוסיף ממש בהתחלה (בשורה 2)
@מלאכת-מחשבת אמר בהאם יש אפשרות לעשות שכשאתה מדגיש מילים בוורד הם יוקפו בסוגריים ע"י מאקרו?:
@ששמעון אמר בהאם יש אפשרות לעשות שכשאתה מדגיש מילים בוורד הם יוקפו בסוגריים ע"י מאקרו?:
ואיך עושים שיהיה אפשרות למרובעות ועגולות.
וכן תעשה למרובעות וכן תעשה למרכאות כמו ההוראות של @dmp ,
(וכמובן להוסיף לפני"ז "Sub שם_המאקרו()" ולבסוף "End Sub")
לגבי מרכאות יש להשתמש בקוד הבא:
Selection.Text = Chr(34) & Selection.Text & Chr(34)
וזאת משום שאי אפשר לשים מרכאות בתוך מרכאות
@מלאכת-מחשבת תנסה את זה
ArrayString = Array("בראשית", "שמות")
For Each s In ArrayString
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "\((" & s & ")(*)\)"
.Replacement.Text = "{\1\2}"
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchDiacritics = False
.MatchControl = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
Next
הקוד מבוסס על ההחלפה שהבאת לעיל, אפשר להוסיף רשימת מילים בשורה 1 (כמובן שאת כל הקוד הזה צריך להכניס לתוך פקודת מאקרו.)
בהצלחה!!!
@מגדלים
מבחינת הקוד זה זהה לקוד שהבאתי לעיל, חוץ משני הבדלים:
א. הטקסט של החיפוש והחלפה, תנסה להוסיף * לפני הסוגר השני, שהמשמעות היא לחפש "בראשית" שאחריו כל תו שהוא (או יותר מתו אחד) ואחר כך סוגר. וכן תעשה בטקסט של ההחלפה.
ב. עליך להגדיר שהחיפוש יתבצע עם תוים כלליים, ולכן תוסיף את השורה הבאה (בין שורה 5 ל-7):
Selection.Find.MatchWildcards = True
כמו כן מומלץ להוסיף את השורות של ClearFormatting (שורות 2-3 בקוד שהבאתי למעלה) על מנת שהחיפוש לא יתבסס על עיצוב שהגדרת בעת חיפוש קודם, פעולה זו מוחקת את הגדרת העיצוב הנוכחית ומגדירה חיפוש ללא עיצוב.
אם זה עדיין לא עובד, פשוט תשתמש בקוד הנ"ל עם טקסט החיפוש של @מלאכת-מחשבת
בהצלחה!!!