מאקרו לוורד להוספת גרשיים בציטוט מפרוייקט השו"ת
-
בקבוצת גוגל של עורכים תורניים המחוברים למייל בלבד ביקשו כמה עורכים אם יש מאקרו שיוסיף ציטוט לטקסט שמועתק מפרוייקט השו"ת בתבנית הבאה:
וַיֹּאמֶר לָאִישׁ לְבוּשׁ הַבַּדִּים אֲשֶׁר מִמַּעַל לְמֵימֵי הַיְאֹר עַד מָתַי קֵץ הַפְּלָאוֹת (דניאל יב, ו)
הרצון הוא לקבל:
"וַיֹּאמֶר לָאִישׁ לְבוּשׁ הַבַּדִּים אֲשֶׁר מִמַּעַל לְמֵימֵי הַיְאֹר עַד מָתַי קֵץ הַפְּלָאוֹת" (דניאל יב, ו)
ניסיתי לעזור בכמה דרכים והכל נכשל
הקלטה של כתיבת""
ואז השחלת ההדבקה אינה עוזרת כיון שהמירכאות צריכות להופיע לפני הסוגריים
ועל ידי חיפוש והחלפה הסתבכתי מפני שצריך לאפיין את המילה הראשונה בטקסט המודבק, וכן ההחלפה של(
ב"(
מחליפה את כל הסוגריים במסמך...אשמח להכוונה ו/או לפתרון
-
@מעלה-ומוריד אני מבין שמדובר על וורד?
הטקסט כפי שהצגת הוא נמצא בלוח הגזירים, כלומר המאקרו גם ידביק וגם ישנה? -
@מעלה-ומוריד הצלחתי לעשות קוד לזה, אבל זה מצריך גם שני הפניות.
הקוד הוא:Sub Macro1() Dim pasteObject As New DataObject pasteObject.GetFromClipboard Dim text As String text = pasteObject.GetText Dim stringOne As String Dim regexOne As Object Set regexOne = New regExp 'text = "test test (and test) more (source test)" regexOne.Pattern = "(.+) (\([^\)]+\))" regexOne.Global = False text = regexOne.Replace(text, """$1"" $2") Debug.Print text ActiveDocument.Content.InsertAfter text End Sub
צריך להוסיף הפניה ל
Microsoft VBScript Regular Expressions 5.5
דרך Tools>Reference...
ועוד הפניה לMicrofsoft Forms 2.0
שהדרך להוסיף אותו זה להוסיף טופס כל שהוא למסמך...
לוחצים בימני על הNormal ואז Insert ואז UserForm. -
@מעלה-ומוריד תודה. תנסה את זה:
Sub Macro1() Dim pasteObject As New DataObject pasteObject.GetFromClipboard Dim text As String text = pasteObject.GetText Dim regexOne As New regExp regexOne.Pattern = "^(.+) (\([^\)]+\))$" regexOne.Global = False text = regexOne.Replace(text, """$1"" $2") Selection.InsertBefore text Selection.Collapse wdCollapseEnd End Sub
-
@dovid אתה ניגש לבעיה בראש של מתכנת, אבל לענ"ד כדאי ש @מעלה-ומוריד יכיר את העוצמה של המאקרו בלי לדעת מילה ב VBA
השלבים שאני הייתי עושה בלי להיות מתכנת VBA הם כך:- הקלדת מרכאה פותחת
- הדבקת הטקסט מהלוח
- חיפוש כלפי מעלה של רווח וסוגר פותח
- תזוזה ימינה
- הקלדת מרכאה סוגרת
- חיפוש כלפי מטה של סוגר סוגר
- תזוזה שמאלה
וזו התוצאה
Sub הדבק_עם_מרכאות() Selection.TypeText Text:="""" Selection.Paste Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = " (" .Forward = False .Wrap = wdFindAsk End With Selection.Find.Execute Selection.MoveLeft Unit:=wdCharacter, Count:=1 Selection.TypeText Text:="""" Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = ")" .Forward = True .Wrap = wdFindAsk End With Selection.Find.Execute Selection.MoveRight Unit:=wdCharacter, Count:=1 End Sub
-
@יוסף-בן-שמעון
אני בלבלתי אותו
כתבתי שניסיתי את כל האפשרויות...
תודה רבה גם לך!@dovid @יוסף-בן-שמעון אפשר הפניה למקום מסודר ללמוד על הקוד בVBA?
-
@יוסף-בן-שמעון אתה כ"כ צודק, זה כמעט בלתי הפיך.
הייתה תועלת רבה אם התגובה שלך הייתה קודמת לשלי.@מעלה-ומוריד אני התחלתי תכנות ממאקרו בווורד. עזרתי לאחי להוציא ספר.
לא הכרתי שום דבר שאינו דרך המאקרו ועשיתי שמה ניסים ונפלאות עד שהחלטתי לברר על השפה, אולי יש שמה טריקים שאני לא מכיר, וככה אח"כ התקדמתי.
כל פעם שאתה רוצה אוטומציה הכי טוב לנסות קודם הקלטת מאקרו הכי ידני שאפשר, לראות את הקוד שנוצר ולנסות להתאים אותו.