המלצה | עוזר לעריכת ספרים לאוצרייא בוורד
-
יש פעמים שבאים לערוך קובץ באוצרייא ולעשות לו קידוד למשל
חבורה בענין וכו'
וככה זה רץ על כל הספר
יש קוד שביקשתי מהצ'אט שיעזור לי בכתיבה שלו בשביל שיעזור למצא את כל המילים שאני אבחר ואפשר כמה כאלה ואפשר כמה רמות של כותרת עד 9 רמות
וככה אפשר לקודד ספר בכמה דקותFunction GetHebrewDateTime() As String Dim hDate As String hDate = Format(Date, "Long Date", vbHebrew) Dim hTime As String hTime = Format(Time, "hh_mm") GetHebrewDateTime = Replace(hDate, "יום ", "") & " " & hTime End Function Sub MultiHeadingTagReplacerWithAutoOpenLog() Dim searchWords() As String Dim headingLevels() As Integer Dim replacements() As Integer Dim i As Integer, count As Integer Dim wordInput As String, headingInput As String count = 0 Do wordInput = InputBox("הזן מילה שמתחילה שורה (או השאר ריק לסיום):", "החלפה #" & count + 1) If wordInput = "" Then Exit Do headingInput = InputBox("הזן מספר כותרת מתאים (1-9) עבור """ & wordInput & """:", "כותרת למילה #" & count + 1) If Not IsNumeric(headingInput) Or Val(headingInput) < 1 Or Val(headingInput) > 9 Then MsgBox "מספר כותרת לא חוקי. נסה שוב." Exit Sub End If count = count + 1 ReDim Preserve searchWords(1 To count) ReDim Preserve headingLevels(1 To count) ReDim Preserve replacements(1 To count) searchWords(count) = wordInput headingLevels(count) = CInt(headingInput) replacements(count) = 0 Loop If count = 0 Then MsgBox "לא הוזנה אף מילה.", vbExclamation Exit Sub End If Dim para As Paragraph For Each para In ActiveDocument.Paragraphs Dim lineText As String lineText = Trim(para.Range.Text) If Right(lineText, 1) = vbCr Then lineText = Left(lineText, Len(lineText) - 1) End If For i = 1 To count If Left(lineText, Len(searchWords(i))) = searchWords(i) Then If InStr(lineText, vbCr) = 0 Then Dim tagOpen As String, tagClose As String tagOpen = "<h" & headingLevels(i) & ">" tagClose = "</h" & headingLevels(i) & ">" para.Range.Text = tagOpen & lineText & tagClose & vbCr replacements(i) = replacements(i) + 1 Else para.Range.Font.Color = wdColorRed End If Exit For End If Next i Next para Dim createLog As VbMsgBoxResult createLog = MsgBox("האם ברצונך ליצור ולפתוח קובץ סיכום עם תאריך עברי ושעה?", vbYesNo + vbQuestion, "קובץ סיכום") If createLog = vbYes Then Dim docName As String docName = Left(ActiveDocument.Name, InStrRev(ActiveDocument.Name, ".") - 1) Dim hebDateTime As String hebDateTime = GetHebrewDateTime() hebDateTime = Replace(hebDateTime, " ", "_") Dim logFileName As String logFileName = "מידע קובץ " & docName & " " & hebDateTime & ".txt" Dim logFilePath As String logFilePath = ActiveDocument.Path & "\" & logFileName Dim fso As Object, logfile As Object Set fso = CreateObject("Scripting.FileSystemObject") Set logfile = fso.CreateTextFile(logFilePath, True) logfile.WriteLine "דו״ח החלפות עבור """ & docName & """" logfile.WriteLine "תאריך עברי: " & Replace(GetHebrewDateTime(), "_", " ") logfile.WriteLine String(50, "-") For i = 1 To count logfile.WriteLine "מילה: " & searchWords(i) & _ " → תג: <h" & headingLevels(i) & ">" & _ " | הוחלפה " & replacements(i) & " פעמים" Next i logfile.Close Shell "notepad.exe """ & logFilePath & """", vbNormalFocus End If End Sub
-
יש פעמים שבאים לערוך קובץ באוצרייא ולעשות לו קידוד למשל
חבורה בענין וכו'
וככה זה רץ על כל הספר
יש קוד שביקשתי מהצ'אט שיעזור לי בכתיבה שלו בשביל שיעזור למצא את כל המילים שאני אבחר ואפשר כמה כאלה ואפשר כמה רמות של כותרת עד 9 רמות
וככה אפשר לקודד ספר בכמה דקותFunction GetHebrewDateTime() As String Dim hDate As String hDate = Format(Date, "Long Date", vbHebrew) Dim hTime As String hTime = Format(Time, "hh_mm") GetHebrewDateTime = Replace(hDate, "יום ", "") & " " & hTime End Function Sub MultiHeadingTagReplacerWithAutoOpenLog() Dim searchWords() As String Dim headingLevels() As Integer Dim replacements() As Integer Dim i As Integer, count As Integer Dim wordInput As String, headingInput As String count = 0 Do wordInput = InputBox("הזן מילה שמתחילה שורה (או השאר ריק לסיום):", "החלפה #" & count + 1) If wordInput = "" Then Exit Do headingInput = InputBox("הזן מספר כותרת מתאים (1-9) עבור """ & wordInput & """:", "כותרת למילה #" & count + 1) If Not IsNumeric(headingInput) Or Val(headingInput) < 1 Or Val(headingInput) > 9 Then MsgBox "מספר כותרת לא חוקי. נסה שוב." Exit Sub End If count = count + 1 ReDim Preserve searchWords(1 To count) ReDim Preserve headingLevels(1 To count) ReDim Preserve replacements(1 To count) searchWords(count) = wordInput headingLevels(count) = CInt(headingInput) replacements(count) = 0 Loop If count = 0 Then MsgBox "לא הוזנה אף מילה.", vbExclamation Exit Sub End If Dim para As Paragraph For Each para In ActiveDocument.Paragraphs Dim lineText As String lineText = Trim(para.Range.Text) If Right(lineText, 1) = vbCr Then lineText = Left(lineText, Len(lineText) - 1) End If For i = 1 To count If Left(lineText, Len(searchWords(i))) = searchWords(i) Then If InStr(lineText, vbCr) = 0 Then Dim tagOpen As String, tagClose As String tagOpen = "<h" & headingLevels(i) & ">" tagClose = "</h" & headingLevels(i) & ">" para.Range.Text = tagOpen & lineText & tagClose & vbCr replacements(i) = replacements(i) + 1 Else para.Range.Font.Color = wdColorRed End If Exit For End If Next i Next para Dim createLog As VbMsgBoxResult createLog = MsgBox("האם ברצונך ליצור ולפתוח קובץ סיכום עם תאריך עברי ושעה?", vbYesNo + vbQuestion, "קובץ סיכום") If createLog = vbYes Then Dim docName As String docName = Left(ActiveDocument.Name, InStrRev(ActiveDocument.Name, ".") - 1) Dim hebDateTime As String hebDateTime = GetHebrewDateTime() hebDateTime = Replace(hebDateTime, " ", "_") Dim logFileName As String logFileName = "מידע קובץ " & docName & " " & hebDateTime & ".txt" Dim logFilePath As String logFilePath = ActiveDocument.Path & "\" & logFileName Dim fso As Object, logfile As Object Set fso = CreateObject("Scripting.FileSystemObject") Set logfile = fso.CreateTextFile(logFilePath, True) logfile.WriteLine "דו״ח החלפות עבור """ & docName & """" logfile.WriteLine "תאריך עברי: " & Replace(GetHebrewDateTime(), "_", " ") logfile.WriteLine String(50, "-") For i = 1 To count logfile.WriteLine "מילה: " & searchWords(i) & _ " → תג: <h" & headingLevels(i) & ">" & _ " | הוחלפה " & replacements(i) & " פעמים" Next i logfile.Close Shell "notepad.exe """ & logFilePath & """", vbNormalFocus End If End Sub
@u88 אבל יש כבר מקודד לעריכה בוורד לואצריא @pcinfogmach ואני עבדנו על זה בעבר, והשקענו בזה לא מעט זמן, וכי לא הגיעה לציבור?
-
@u88 אבל יש כבר מקודד לעריכה בוורד לואצריא @pcinfogmach ואני עבדנו על זה בעבר, והשקענו בזה לא מעט זמן, וכי לא הגיעה לציבור?
@menajemmendel יש לי אותו אבל שאתה מגיע לחבורה, פרשת, בענין, וכו' אין שם אפשרויות כאלה ועוד שהוא מיצא לך לקובץ את השינויים עם תאריך פירוט של כל דבר
'תא חזי' -
@menajemmendel יש לי אותו אבל שאתה מגיע לחבורה, פרשת, בענין, וכו' אין שם אפשרויות כאלה ועוד שהוא מיצא לך לקובץ את השינויים עם תאריך פירוט של כל דבר
'תא חזי'@u88 כתב בהמלצה | עוזר לעריכת ספרים לאוצרייא בוורד:
ש לי אותו אבל שאתה מגיע לחבורה, פרשת, בענין, וכו' אין שם אפשרויות כאלה
אולי תפרט קצת כי לפי מה שאתה כותב זה נשמע יותר סיפור של חיפוש והחלפה ולא הרבה יותר מזה.
מה בדיוק כוונתך מפרט שינויים? למה צריך את זה? -
@menajemmendel יש לי אותו אבל שאתה מגיע לחבורה, פרשת, בענין, וכו' אין שם אפשרויות כאלה ועוד שהוא מיצא לך לקובץ את השינויים עם תאריך פירוט של כל דבר
'תא חזי'@u88 מה אתה מתכוון? אתה יכול לכתוב כל ערך שתרצה שיסמן לפיו
-
@u88 מה אתה מתכוון? אתה יכול לכתוב כל ערך שתרצה שיסמן לפיו
@menajemmendel הוא רוצה משהו אחר.
הוא פשוט רוצה להחליף כל שורה שמתחילה במילה מסוימת, ליצור לה כותרת על כל השורה כולה.
לדוגמא, כל שורה שמתחילה במילה: "בענין", שכולה תהי' כותרת. -
@menajemmendel הוא רוצה משהו אחר.
הוא פשוט רוצה להחליף כל שורה שמתחילה במילה מסוימת, ליצור לה כותרת על כל השורה כולה.
לדוגמא, כל שורה שמתחילה במילה: "בענין", שכולה תהי' כותרת.@יום-חדש-מתחיל
כנ"ל זה סיפור פשוט של חיפוש והחלפה! -
@יום-חדש-מתחיל
כנ"ל זה סיפור פשוט של חיפוש והחלפה!@pcinfogmach איך?
-
@pcinfogmach איך?
@יום-חדש-מתחיל כתב בהמלצה | עוזר לעריכת ספרים לאוצרייא בוורד:
@pcinfogmach איך?
חיפוש של תו מעבר שורה ואחריו המילה, ולהחליף את העיצוב פיסקה של המילה לא כולל התו מעבר שורה בסגנון כותרת, וזה מחליף את כל הפיסקה כי זה סגנון פיסקה.
אבל זה עדיין דורש VBA כדי לא להחליף גם את התו מעבר שורה עצמו שיגרום גם לפסקה הקודמת להיות סגנון כותרת.
אולי ל @pcinfogmach יש דרך עוד יותר פשוטה. -
@יום-חדש-מתחיל כתב בהמלצה | עוזר לעריכת ספרים לאוצרייא בוורד:
@pcinfogmach איך?
חיפוש של תו מעבר שורה ואחריו המילה, ולהחליף את העיצוב פיסקה של המילה לא כולל התו מעבר שורה בסגנון כותרת, וזה מחליף את כל הפיסקה כי זה סגנון פיסקה.
אבל זה עדיין דורש VBA כדי לא להחליף גם את התו מעבר שורה עצמו שיגרום גם לפסקה הקודמת להיות סגנון כותרת.
אולי ל @pcinfogmach יש דרך עוד יותר פשוטה.@ע-ה-דכו-ע כתב בהמלצה | עוזר לעריכת ספרים לאוצרייא בוורד:
אבל זה עדיין דורש VBA כדי לא להחליף גם את התו מעבר שורה עצמו שיגרום גם לפסקה הקודמת להיות סגנון כותרת.
אולי ל @pcinfogmach יש דרך עוד יותר פשוטה.מאד פשוט, בכל המיקרים האלו (שצריך לעשות חיפוש ולשנות רק חלק מהחיפוש) אפשר בלי VBA, לעשות חפש והחלף ב3 שלבים:
- לחפש מה שכתבת ולהחליף אותו ב''מסומן'' (כלומר לא לשנות שום כיתוב רק לסמן אותו)
- לחפש כל המסומנים (מלבד אנטרים)
[^13!]
ולשנות אותם לסגנון פיסקה חדשה - לחמוק מכל המסמך את מסומנים.
אפשר גם לחלופין, במקום ''לסמן'', לשתול קוד לדוגמא @@@ ואז
- חפש אנטרים-ומילה, ובהחלף שיהיה שם @@@ לפני המילה
- לחפש כל ה@@@ ולהחיל עליהם סגנון פיסקה
- למחוק את ה@@@
-
@ע-ה-דכו-ע כתב בהמלצה | עוזר לעריכת ספרים לאוצרייא בוורד:
אבל זה עדיין דורש VBA כדי לא להחליף גם את התו מעבר שורה עצמו שיגרום גם לפסקה הקודמת להיות סגנון כותרת.
אולי ל @pcinfogmach יש דרך עוד יותר פשוטה.מאד פשוט, בכל המיקרים האלו (שצריך לעשות חיפוש ולשנות רק חלק מהחיפוש) אפשר בלי VBA, לעשות חפש והחלף ב3 שלבים:
- לחפש מה שכתבת ולהחליף אותו ב''מסומן'' (כלומר לא לשנות שום כיתוב רק לסמן אותו)
- לחפש כל המסומנים (מלבד אנטרים)
[^13!]
ולשנות אותם לסגנון פיסקה חדשה - לחמוק מכל המסמך את מסומנים.
אפשר גם לחלופין, במקום ''לסמן'', לשתול קוד לדוגמא @@@ ואז
- חפש אנטרים-ומילה, ובהחלף שיהיה שם @@@ לפני המילה
- לחפש כל ה@@@ ולהחיל עליהם סגנון פיסקה
- למחוק את ה@@@
@menajemmendel במקום כל זאת קוד פשוט שעושה את הכל
גם עושה בהחלפה אחת כמה סוגי כותרות וגם עושה אח"כ מסמך סיכוםאתה חושב שאין בזה תועלת?
לי זה יותר פשוט אולי גם לאחרים
אולי זה יועיל לך באיזה שהוא מקום תבדוק -
@menajemmendel במקום כל זאת קוד פשוט שעושה את הכל
גם עושה בהחלפה אחת כמה סוגי כותרות וגם עושה אח"כ מסמך סיכוםאתה חושב שאין בזה תועלת?
לי זה יותר פשוט אולי גם לאחרים
אולי זה יועיל לך באיזה שהוא מקום תבדוק@u88 כתב בהמלצה | עוזר לעריכת ספרים לאוצרייא בוורד:
@menajemmendel במקום כל זאת קוד פשוט שעושה את הכל
גם עושה בהחלפה אחת כמה סוגי כותרות וגם עושה אח"כ מסמך סיכוםאתה צודק, אני בתגובה אחרונה לא התכוונתי שיש ענין לא להשתמש בVBA (אני משתמש הרבה בVBA, כמו שידוע להרבה בפורום)
בהתחלה שאלתי אותך כי חשבתי שלא הגיע לידך העורך שעבדנו עליו, אבל אם הגיע ולא מספיק לך, אז מצויין שיש לך פתרונות.
בהודעה אחרונה רק כתבתי (בתור העשרת ידע ל @ע-ה-דכו-ע) איך באופן כללי ניתן להגיע לתוצאות כאלה בלי להתשמש בVBA (למי שלא יודע VBA וכדו'). -
@u88 כתב בהמלצה | עוזר לעריכת ספרים לאוצרייא בוורד:
@menajemmendel במקום כל זאת קוד פשוט שעושה את הכל
גם עושה בהחלפה אחת כמה סוגי כותרות וגם עושה אח"כ מסמך סיכוםאתה צודק, אני בתגובה אחרונה לא התכוונתי שיש ענין לא להשתמש בVBA (אני משתמש הרבה בVBA, כמו שידוע להרבה בפורום)
בהתחלה שאלתי אותך כי חשבתי שלא הגיע לידך העורך שעבדנו עליו, אבל אם הגיע ולא מספיק לך, אז מצויין שיש לך פתרונות.
בהודעה אחרונה רק כתבתי (בתור העשרת ידע ל @ע-ה-דכו-ע) איך באופן כללי ניתן להגיע לתוצאות כאלה בלי להתשמש בVBA (למי שלא יודע VBA וכדו'). -
@u88 כתב בהמלצה | עוזר לעריכת ספרים לאוצרייא בוורד:
בדקת את זה?
לא, אני לא צריך אותו לעת עתה, כנ''ל רק שאלתי כי חשבתי כי אולי לא מוכר לך העורך
-
@u88 כתב בהמלצה | עוזר לעריכת ספרים לאוצרייא בוורד:
בדקת את זה?
לא, אני לא צריך אותו לעת עתה, כנ''ל רק שאלתי כי חשבתי כי אולי לא מוכר לך העורך
@menajemmendel מוכר לי והוא ממש פלא אדיר!!!!
לא ח"ו שאני כפוי טובה רק באתי להציג עוד כיוון
כמו שאמרו חז"ל 'מיני ומינך יתקלס עילאה' -
@menajemmendel מוכר לי והוא ממש פלא אדיר!!!!
לא ח"ו שאני כפוי טובה רק באתי להציג עוד כיוון
כמו שאמרו חז"ל 'מיני ומינך יתקלס עילאה'פוסט זה נמחק! -
@ע-ה-דכו-ע כתב בהמלצה | עוזר לעריכת ספרים לאוצרייא בוורד:
אבל זה עדיין דורש VBA כדי לא להחליף גם את התו מעבר שורה עצמו שיגרום גם לפסקה הקודמת להיות סגנון כותרת.
אולי ל @pcinfogmach יש דרך עוד יותר פשוטה.מאד פשוט, בכל המיקרים האלו (שצריך לעשות חיפוש ולשנות רק חלק מהחיפוש) אפשר בלי VBA, לעשות חפש והחלף ב3 שלבים:
- לחפש מה שכתבת ולהחליף אותו ב''מסומן'' (כלומר לא לשנות שום כיתוב רק לסמן אותו)
- לחפש כל המסומנים (מלבד אנטרים)
[^13!]
ולשנות אותם לסגנון פיסקה חדשה - לחמוק מכל המסמך את מסומנים.
אפשר גם לחלופין, במקום ''לסמן'', לשתול קוד לדוגמא @@@ ואז
- חפש אנטרים-ומילה, ובהחלף שיהיה שם @@@ לפני המילה
- לחפש כל ה@@@ ולהחיל עליהם סגנון פיסקה
- למחוק את ה@@@
@menajemmendel
כבר הרבה יותר קל VBA...אבל אתה צודק שיש כאלו שמבינים רק בחיפוש והחלפה ולהם זה באמת יותר קל.
-
@menajemmendel
כבר הרבה יותר קל VBA...אבל אתה צודק שיש כאלו שמבינים רק בחיפוש והחלפה ולהם זה באמת יותר קל.
@ע-ה-דכו-ע אגלה לך סוד, לפי נסיוני בתחום, אני רואה שמאד קצת אנשים יודעים VBA.
לפני שנים רבות, [כמדומני שזה היה עוד לפני הקמת המדינה, אבל לא בטוח], אני לא ידעתי VBA ונהגתי להשתמש הרבה בחפש והחלף.
גם בVBA אתה צריך לבחור באיזה דרך לעשות את זה, אם ע''י חפש והחלף או ע''י לולאה שרצה על פני כל המסמך וכו'. ובהרבה מיקרים הרבה יותא מהיר לעשות את זה ע''י חפש והחלף בVBA, מבלולאה על פני כל המסמך. -
@ע-ה-דכו-ע אגלה לך סוד, לפי נסיוני בתחום, אני רואה שמאד קצת אנשים יודעים VBA.
לפני שנים רבות, [כמדומני שזה היה עוד לפני הקמת המדינה, אבל לא בטוח], אני לא ידעתי VBA ונהגתי להשתמש הרבה בחפש והחלף.
גם בVBA אתה צריך לבחור באיזה דרך לעשות את זה, אם ע''י חפש והחלף או ע''י לולאה שרצה על פני כל המסמך וכו'. ובהרבה מיקרים הרבה יותא מהיר לעשות את זה ע''י חפש והחלף בVBA, מבלולאה על פני כל המסמך.אני באמת התכוונתי בעיקר ע"י חיפוש והחלפה בVBA, שככה זה עובד באותה צורה פשוטה, רק מאפשר לעשות בלי התו של מעבר שורה ובלי הרבה שלבים.
-
אני באמת התכוונתי בעיקר ע"י חיפוש והחלפה בVBA, שככה זה עובד באותה צורה פשוטה, רק מאפשר לעשות בלי התו של מעבר שורה ובלי הרבה שלבים.
@ע-ה-דכו-ע כתב בהמלצה | עוזר לעריכת ספרים לאוצרייא בוורד:
אני באמת התכוונתי בעיקר ע"י חיפוש והחלפה בVBA, שככה זה עובד באותה צורה פשוטה, רק מאפשר לעשות בלי התו של מעבר שורה ובלי הרבה שלבים.
אבל הקוד של @u88 הוא לא עובד ע''י חפש והחלף בVBA,
חוץ מזה, איך אתה עושה בVBA חיפוש והחלף בלי מעבר שורה?
ע''י לולאה של:חפש החלף בודד COLLAPSE החלת סגנון וחוזר חלילה?