- הוסף לסימניות
- #361
נכתב ע"י Yisrael;799970:בוורד אין אוסף מילים בהיררכיית האוספים. באמת מעצבן בהרבה מקרים, אבל אי אפשר לעבור מילה מילה כמו שאפשר לעבור תו תו ופסקה פסקה.
א"כ מה זה?
קוד:
Selection.[B]Words[/B]
נכתב ע"י Yisrael;799970:בוורד אין אוסף מילים בהיררכיית האוספים. באמת מעצבן בהרבה מקרים, אבל אי אפשר לעבור מילה מילה כמו שאפשר לעבור תו תו ופסקה פסקה.
Selection.[B]Words[/B]
נכתב ע"י אלחנן אריאל;799981:זה אפשרי, עם כי בדרכים עקיפות.
למשל, אני בוחר (ע"י חיפוש) את כל הטקסט האוטומטי, ומעצבו בקו תחתון. ולאחר מכן בוחר (ע"י חיפוש), כל אשר אינו בקו תחתון.
Sub FindNotBlack()
Dim rDcm As Range
Set rDcm = ActiveDocument.Range
With rDcm.Find
.Text = "<*>"
.MatchWildcards = True
While .Execute
If rDcm.Font.Color <>wdColorAutomatic Then
rDcm.Font.Color = wdColorRed
End If
Wend
End With
End Sub
נכתב ע"י אלחנן אריאל;799972:ראשית, תודה רבה!
צירפתי תמונה של הודעת השגיאה.
ושוב תודה!
אין מילים!
נכתב ע"י אלחנן אריאל;799981:זה אפשרי, עם כי בדרכים עקיפות.
למשל, אני בוחר (ע"י חיפוש) את כל הטקסט האוטומטי, ומעצבו בקו תחתון. ולאחר מכן בוחר (ע"י חיפוש), כל אשר אינו בקו תחתון.
נכתב ע"י moishy;799995:א"כ מה זה?
קוד:Selection.[B]Words[/B]
Sub העתקת__טקסט_צבוע()
Dim MyArray() As Variant
For i = 1 To ActiveDocument.Words.Count
If Not ActiveDocument.Words(i).Font.ColorIndexBi = wdAuto Then
start = ActiveDocument.Words(i).start
For t = i To ActiveDocument.Words.Count
f = f + 1
If ActiveDocument.Words(t).Font.ColorIndexBi = wdAuto Then
endd = ActiveDocument.Words(t).start
Selection.SetRange start, endd
y = y + 1
ReDim Preserve MyArray(y)
MyArray(y) = Selection.Range & "-" & Selection.Information(wdActiveEndPageNumber)
i = i + f
Exit For
End If
Next t
End If
Next i
Documents.Add
For E = 1 To y
ActiveDocument.Paragraphs(E).Range = MyArray(E)
If E < y Then
Selection.EndKey wdStory
ActiveDocument.Paragraphs.Add Selection.Range
End If
Next E
End Sub
נכתב ע"י moishy;800012:עד כמה שידוע לי אין אפשרות לחפש בשלילה, ומ"מ יש פתרון המודגם בקוד הבא
קוד:Sub FindNotBlack() Dim rDcm As Range Set rDcm = ActiveDocument.Range With rDcm.Find .Text = "<*>" .MatchWildcards = True While .Execute If rDcm.Font.Color <>wdColorAutomatic Then rDcm.Font.Color = wdColorRed End If Wend End With End Sub
נכתב ע"י moishy;800012:עד כמה שידוע לי אין אפשרות לחפש בשלילה,
[/CODE]
נכתב ע"י Yisrael;800153:על פניו זה נראה שיש לו איזה בעיה עם ההקצאה של המילה start למשתנה, אולי הוא מוקצה לאיזו פונקציה כללית או משהו כזה, תנסה לשנות את המילה למשהו אחר (בכל המופעים שלה בשגרה) ונראה מה יהיו חלומותיו.
start = ActiveDocument.Words(i).start
נכתב ע"י Yisrael;800153:צירפתי קוד משופר.
קוד:Sub העתקת__טקסט_צבוע() Dim MyArray() As Variant For i = 1 To ActiveDocument.Words.Count If Not ActiveDocument.Words(i).Font.ColorIndexBi = wdAuto Then start = ActiveDocument.Words(i).start For t = i To ActiveDocument.Words.Count f = f + 1 If ActiveDocument.Words(t).Font.ColorIndexBi = wdAuto Then endd = ActiveDocument.Words(t).start Selection.SetRange start, endd y = y + 1 ReDim Preserve MyArray(y) MyArray(y) = Selection.Range & "-" & Selection.Information(wdActiveEndPageNumber) i = i + f Exit For End If Next t End If Next i Documents.Add For E = 1 To y ActiveDocument.Paragraphs(E).Range = MyArray(E) If E < y Then Selection.EndKey wdStory ActiveDocument.Paragraphs.Add Selection.Range End If Next E End Sub
נכתב ע"י moishy;800012:יש פתרון המודגם בקוד הבא
קוד:Sub FindNotBlack() Dim rDcm As Range Set rDcm = ActiveDocument.Range With rDcm.Find .Text = "<*>" .MatchWildcards = True While .Execute If rDcm.Font.Color <>wdColorAutomatic Then rDcm.Font.Color = wdColorRed End If Wend End With End Sub
נכתב ע"י אלחנן אריאל;800288:לא פעל על כל הטקסט שצבעם שונה. כי אם על כ15% מהם.
אתמהה?!
שוב יישר כחך ר' ישראל!
תודה רבה עד מאוד!
נכתב ע"י אלחנן אריאל;800273:א"כ מה זה?
![]()
הקוד הזה לא אמור לפתור דבר, הוא מיועד למתכנתים שבינינו, להדגים כיצד ניתן לעשות חיפוש בחיוב עם סינון בשלילה.נכתב ע"י אלחנן אריאל;800379:הרצתי את המאקרו שוב, וראיתי שהוא עובר על המסמך ובוחר כל מקבץ טקסט שאינו בצבע אוטומטי, ואכן מדלג על חלקם.
נכתב ע"י אלחנן אריאל;800288:שיניתי את המלה start, ואכן אינו נתקע!
אציין, כי לא את כל מילות start היה צריך לשנות. למשל בשורה הזו:
היה צריך לשנות את אשר בפתיחת השורה, ולא את זו שבחתימתה.קוד:start = ActiveDocument.Words(i).start
נכתב ע"י אלחנן אריאל;800291:לא זכיתי להבין, איזה חלק הקוד הזה אמור לפתור?
אצלי הוא לא הביאני לתכלית הנרצית.
נכתב ע"י אלחנן אריאל;800379:הרצתי את המאקרו שוב, וראיתי שהוא עובר על המסמך ובוחר כל מקבץ טקסט שאינו בצבע אוטומטי, ואכן מדלג על חלקם.
Sub העתקת_טקסט_צבעוני()
Application.Documents.Add ActiveDocument.FullName
Application.ScreenUpdating = False
With ActiveDocument.Content
With .Find
.ClearFormatting
.Replacement.ClearFormatting
.Forward = False
.Wrap = wdFindStop
.Format = True
.Text = ""
.Font.ColorIndex = wdAuto
.Execute
End With
Do While .Find.Found
.Text = vbTab & "עמוד " & .Duplicate.Characters.First.Information(wdActiveEndPageNumber) & vbCr
.Collapse wdCollapseStart
.Find.Execute
Loop
With .Find
.ClearFormatting
.Replacement.ClearFormatting
.Wrap = wdFindContinue
.Format = False
.MatchWildcards = True
.Text = "^13^tעמוד [0-9]{1,2}"
.Replacement.Text = ""
.Execute Replace:=wdReplaceAll
End With
.Paragraphs.First.Range.Delete
End With
ActiveDocument.Range.Characters.Last.Previous.Delete
Application.ScreenUpdating = True
End Sub
Sub העתקת_טקסט_צבוע()
Dim MyArray() As Variant
Selection.Find.ClearFormatting: Selection.Find.Font.ColorIndexBi = wdRed
a:
If Selection.Find.Execute(findtext:="") Then
y = y + 1
ReDim Preserve MyArray(y)
MyArray(y) = Selection.Range & " -" & Selection.Information(wdActiveEndPageNumber)
GoTo a
End If
Documents.Add
For E = 1 To y
ActiveDocument.Paragraphs(E).Range = MyArray(E)
If E < y Then
Selection.EndKey wdStory
ActiveDocument.Paragraphs.Add Selection.Range
End If
Next E
End Sub
נכתב ע"י אלחנן אריאל;802011:תודה רבה לר' ישראל,
שהביא לפתרון הרצוי,
בקוד הזה:
זה לאחר שכל המשפטים האמורים להשלף, נצבעו באדום.קוד:Sub העתקת_טקסט_צבוע() Dim MyArray() As Variant Selection.Find.ClearFormatting: Selection.Find.Font.ColorIndexBi = wdRed a: If Selection.Find.Execute(findtext:="") Then y = y + 1 ReDim Preserve MyArray(y) MyArray(y) = Selection.Range & " -" & Selection.Information(wdActiveEndPageNumber) GoTo a End If Documents.Add For E = 1 To y ActiveDocument.Paragraphs(E).Range = MyArray(E) If E < y Then Selection.EndKey wdStory ActiveDocument.Paragraphs.Add Selection.Range End If Next E End Sub
נכתב ע"י דודו10;802564:שלום,
כן גם אני הבחנתי בבעיה הזאת
אם למישהו יש פתרון, אשמח לשמוע
ושוב תודה
נכתב ע"י דודו10;802623:שלום
בקיצור האם מישהו יוכל לכתוב לי מסודר את הדוק המדוייק שצריך לכתוב עבור הדגשה של אות ראשונה כולל מרכאות
תודה
נכתב ע"י moishy;802304:אצלי זה פעל פחות טוב מהגירסא המקורית של ר' ישראל, רק אחוז מזערי של הצבועים באדום אכן חולצו.
rhon.co.il
מעכשיו, תהיו הראשונים לקבל את כל העדכונים, החדשות, ההפתעות בלעדיות, והתכנים הכי חמים שלנו בפרוג!
חלה שגיאה בשליחה. נסו שוב!
לוח לימודים
מסלולי לימוד שאפשר להצטרף
אליהם ממש עכשיו:
תהילים פרק כה
אלְדָוִד אֵלֶיךָ יי נַפְשִׁי אֶשָּׂא:באֱלֹהַי בְּךָ בָטַחְתִּי אַל אֵבוֹשָׁה אַל יַעַלְצוּ אֹיְבַי לִי:גגַּם כָּל קוֶֹיךָ לֹא יֵבֹשׁוּ יֵבֹשׁוּ הַבּוֹגְדִים רֵיקָם:דדְּרָכֶיךָ יי הוֹדִיעֵנִי אֹרְחוֹתֶיךָ לַמְּדֵנִי:ההַדְרִיכֵנִי בַאֲמִתֶּךָ וְלַמְּדֵנִי כִּי אַתָּה אֱלֹהֵי יִשְׁעִי אוֹתְךָ קִוִּיתִי כָּל הַיּוֹם:וזְכֹר רַחֲמֶיךָ יי וַחֲסָדֶיךָ כִּי מֵעוֹלָם הֵמָּה:זחַטֹּאות נְעוּרַי וּפְשָׁעַי אַל תִּזְכֹּר כְּחַסְדְּךָ זְכָר לִי אַתָּה לְמַעַן טוּבְךָ יי:חטוֹב וְיָשָׁר יי עַל כֵּן יוֹרֶה חַטָּאִים בַּדָּרֶךְ:טיַדְרֵךְ עֲנָוִים בַּמִּשְׁפָּט וִילַמֵּד עֲנָוִים דַּרְכּוֹ:יכָּל אָרְחוֹת יי חֶסֶד וֶאֱמֶת לְנֹצְרֵי בְרִיתוֹ וְעֵדֹתָיו:יאלְמַעַן שִׁמְךָ יי וְסָלַחְתָּ לַעֲוֹנִי כִּי רַב הוּא:יבמִי זֶה הָאִישׁ יְרֵא יי יוֹרֶנּוּ בְּדֶרֶךְ יִבְחָר:יגנַפְשׁוֹ בְּטוֹב תָּלִין וְזַרְעוֹ יִירַשׁ אָרֶץ:ידסוֹד יי לִירֵאָיו וּבְרִיתוֹ לְהוֹדִיעָם:טועֵינַי תָּמִיד אֶל יי כִּי הוּא יוֹצִיא מֵרֶשֶׁת רַגְלָי:טזפְּנֵה אֵלַי וְחָנֵּנִי כִּי יָחִיד וְעָנִי אָנִי:יזצָרוֹת לְבָבִי הִרְחִיבוּ מִמְּצוּקוֹתַי הוֹצִיאֵנִי:יחרְאֵה עָנְיִי וַעֲמָלִי וְשָׂא לְכָל חַטֹּאותָי:יטרְאֵה אוֹיְבַי כִּי רָבּוּ וְשִׂנְאַת חָמָס שְׂנֵאוּנִי:כשָׁמְרָה נַפְשִׁי וְהַצִּילֵנִי אַל אֵבוֹשׁ כִּי חָסִיתִי בָךְ:כאתֹּם וָיֹשֶׁר יִצְּרוּנִי כִּי קִוִּיתִיךָ:כבפְּדֵה אֱלֹהִים אֶת יִשְׂרָאֵל מִכֹּל צָרוֹתָיו:
הנושאים החמים