اذهب الي المحتوي
أوفيسنا

أبو عاصم المصري

03 عضو مميز
  • Posts

    165
  • تاريخ الانضمام

  • تاريخ اخر زياره

  • Days Won

    2

كل منشورات العضو أبو عاصم المصري

  1. لعكس الترتيب كما في المثال اتبع الآتي: 1- احذف السلاش (/) عن طريق الاستبدال، وضع مكانها مسافة. 2- إجراء عملية الاستبدال مع حروف البدل: اكتب في مربع البحث: (<[0-9]@>) (<[0-9]@>) (<[0-9]@>) واكتب في مربع الاستبدال: \3 \2 \1 * لا بد أن تكون هذه الأرقام باللغة الإنجليزية واختر أن يكون مربع الاستبدال تحته خط (ctrl + u) 3- استبدال الكل، سيجعل الأرقام كما طلبت، ولكن دون السلاش (/). 4- افتح مربع الاستبدال، واختر في مربع البحث مسافة مع (ctrl + u) يعني استبدل مسافة تحتها خط. وفي خانة الاستبدال اكتب / وبهذا تكون كل الأرقام قد انعكست كما طلبت، ثم احذف الخط الذي تحت الأرقام والسلاش عن طريق البحث والاستبدال.
  2. من الأمور التي نحتاجها أحيانا أن نرتب مجموعة أرقام على غرار (45، 30، 25، 15، 10، 5، 40، 20، 35، 50) والترتيب اليدوي يستغرق وقتا، كما أنه لم يسلم من الخطأ. وهذا الماكرو يقوم بعملية ترتيب أرقام محددة بمجرد تحديد هذه الأرقام وتشغيل الماكرو: ' ماكرو لترتيب أرقام محددة 'بحيث تظلل مجموعة أرقام بينها فاصلة (،) وتشغل الماكرو ليقوم بترتيب هذه الأرقام من الأصغر إلى الأكبر ' On Error Resume Next Dim objSelection As Range Dim strText As String Dim i As Long Dim arabicChars As String Dim StrData As String, j As Long, DataArray() Dim aa As String ''''''''''' Dim searchTerm1 As String Dim searchTerm2 As String Dim searchTerm3 As String Dim textToSearch As String Dim position1 As Integer Dim position2 As Integer If Len(Selection.Text) = 1 Then MsgBox "من فضلك ظلل الأرقام التي تريد ترتيبها" Beep Exit Sub Else End If '''''''''' إذا كان يوجد في النص المحدد هذه العلامات فأوقف الماكرو searchTerm1 = "-" searchTerm2 = "،" searchTerm3 = ":" textToSearch = Selection.Text position1 = InStr(1, textToSearch, searchTerm1) position2 = InStr(1, textToSearch, searchTerm2) position3 = InStr(1, textToSearch, searchTerm3) If position1 > 0 And position2 > 0 Then Beep MsgBox "يوجد أكثر من فاصل بين الأرقام المحددة" Exit Sub Else End If '''''''''' ''''''''''''''''''''''' لقفل الماكرو عند الضغط على زر escape aa = InputBox(Prompt:="حدد الفاصل بين الأرقام (، أو -) أو غيرهما", _ title:="ترتيب أرقـــــام", Default:="، ") If aa = "" Or _ aa = vbNullString Then Beep Exit Sub End If '''''''''''' ss = Selection.Text StrData = ss If InStr(Selection, aa) <> 0 Then '''''''''''' Beep Else: MsgBox "لا يوجد الفاصل الذي حددته بين الأرقام" '''' إذا لم يوجد فاصلة ضمن النص المحدد Exit Sub End If arabicChars = "أبتثجحخدذرزسشصضطظعغفقكلمنهويةئؤإآ" Set objSelection = Selection.Range strText = objSelection.Text For i = 1 To Len(arabicChars) If InStr(1, strText, Mid$(arabicChars, i, 1), vbBinaryCompare) > 0 Then MsgBox "الجملة المحددة تحتوي على حروف هجائية" Exit Sub End If Next i j = UBound(Split(StrData, aa)): ReDim DataArray(j) For i = 0 To j DataArray(i) = Split(StrData, aa)(i) Next WordBasic.sortArray DataArray() MsgBox Join(DataArray(), aa) Selection.TypeText Text:=Join(DataArray(), aa) Beep End Sub
  3. الفهرسة لا بد أن تكون بعد الانتهاء الكامل من تعديل النص، حتى لا يكون هناك اختلاف بين النص الموجود في الكتاب وبين الفهرس. وإذا اضطررنا للتعديل في النص، وكان هذا التعديل له أثر في الفهارس، فلا بد من التعديل في الفهرس أيضا. فإذا لم ينتبه إلى ذلك وتم التعديل في النص دون الفهارس، فهنا يمكن أخذ أطراف الفهارس موضعا موضعا البحث بها في النص، فإن وجد الفهرس، فهذا يعني أن النص لم يتم أي تعديل عليه في هذا الموضع، وإن لم يوجد فهذا يعني أن هناك تعديلا جرى على النص في هذا الموضع، وهنا يجب تعديل الفهرس لموافقة النص.
  4. هذا الماكرو يستبدل مجموعة كلمات، ويضع مكانها كلمة واحدة. يعني يمكن أن تضع في خانة البحث: محمد ، أحمد ، إبراهيم وفي خانة الاستبدال: عمر وستحول كل المواضع التي فيها (محمد ، عمر ، إبراهيم) إلى (عمر) ' ' استبدال مجموعة كلمة متفرقة بكلمة واحد ' ' Dim xFind As String Dim xReplace As String Dim xFindArr, xReplaceArr Dim i As Long xFind = InputBox("أدخل هنا مجموعةالكلمات التي تريد استبدالها، مفصولة بفاصلة: ", "الكلمات المطلوب استبدالها") xReplace = InputBox(":أدخل الكلمة التي تريد استبدالها مكان الكلمات السابقة ", "الكلمة الجديدة") xFindArr = Split(xFind, "،") For i = 0 To UBound(xFindArr) With Selection.Find .ClearFormatting .Replacement.ClearFormatting .Text = xFindArr(i) .Replacement.Text = xReplace .Format = False .MatchWholeWord = False End With Selection.Find.ClearFormatting ' لو أردت حذف التمييز، فاحذف هذا السطر، والثلاثة التالية له Selection.Find.Replacement.ClearFormatting Selection.Find.Replacement.Highlight = True Options.DefaultHighlightColorIndex = wdBrightGreen Selection.Find.Execute Replace:=wdReplaceAll Next Application.ScreenUpdating = True Beep End Sub
  5. أخي الأمر بسيط... سجل ماكرو جديد من قائمة عرض ..... ثم وحدات ماكرو ..... ثم تسجيل ماكرو ..... ثم موافق ..... ثم إيقاف التسجيل. بعد ذلك انسخ الكود (الماكرو) لكن بشرط أن تكون اللغة في الشريط الأسفل (عربي) وذلك قبل النسخ حتى ينسخ الكود كما هو (عربي وإنجليزي). ثم الصق الماكرو، وسيظهر لك الماكرو باللغتين العربي والإنجليزي.
  6. أحيانا تأتي الملفات بها أرقام تبدأ بصفر (0) أو أكثر، مثل (05)، (006)، (00010)، ونحو ذلك. ويحتاج الباحث إلى حذف هذه الأصفار، فيصبح الرقم: (5)، (6)، (10) والطريقة سهلة للغاية، وهي كتابة: <0 في خانة البحث، مع ترك خانة الاستبدال فارغة، واختيار حروف البدل. سيقوم هذا الأمر بحذف هذه الأصفار التي على يسار الرقم.
  7. لا يوجد أصلا في الورد إمكانية استبدال مجموعة كلمات بمجموعة أخرى، سواء في النص أو في علامة الحاشية، ولكن هناك ماكرو يمكن أن ينفذ عملية استبدال مجموعة كلمات بأخرى، وهذا أرسلته لك من قبل، وهو هنا في الملتقى.
  8. نحتاج كثيرا إلى اختبار أوائل صفوف الجداول أو أوائل الفقرات للبحث عن التكرار، سواء أكان تكرار كلمتين أو ثلاثة أو أكثر، وهذا ماكرو يفيدك في ذلك: ' ' سطران أو صفان أولهما متشابه ' ' On Error Resume Next Dim sPrompt As String Dim sUserResp As String Dim iUR As Integer sPrompt = "1. بداية صفين متشابهة [جدول]" & vbCrLf sPrompt = sPrompt & "2. بداية فقرتين متشابهة [فقرات]" & vbCrLf iUR = 0 ''''''''''''''''' While iUR < 1 Or iUR > 3 sUserResp = InputBox(sPrompt, "اختر واحدًا مما يلي") iUR = Val(sUserResp) ''''''''''''''''' لإمكانية إلغاء جميع الاختيارات وقفل الكود If iUR = False Then Exit Sub End If '''''''''''''''''''''' Wend Select Case iUR Case 1 If Selection.Information(wdWithInTable) = False Then MsgBox ("ضع المؤشر داخل الجدول") Exit Sub Else End If ss = InputBox("أدخل عدد الكلمات التي تريد مقارنتها في أول الصف") Do Selection.MoveRight Unit:=wdWord, Count:=ss, Extend:=wdExtend a = Selection.Text Selection.HomeKey Unit:=wdLine Selection.GoTo what:=wdGoToLine, Which:=wdGoToNext, Count:=1, name:="" Selection.MoveRight Unit:=wdWord, Count:=ss, Extend:=wdExtend b = Selection.Text If a = b Then Beep If MsgBox("سجلان أولهما مكرر، هل ترغب في المتابعة؟", vbQuestion + vbYesNo) <> vbYes Then Exit Sub End If End If Selection.HomeKey Unit:=wdLine Loop Until (Selection.End = ActiveDocument.Content.End - 1) Beep Case 2 If Selection.Information(wdWithInTable) = True Then ''' إذا كان المؤشر داخل جدول فتوقف عن العمل MsgBox (" لا يصلح هذا الاختيار داخل الجدول، اختر رقم 2 ") Exit Sub Else End If ss = InputBox("أدخل عدد الكلمات التي تريد مقارنتها في أول الفقرة") Do Selection.MoveRight Unit:=wdWord, Count:=ss, Extend:=wdExtend a = Selection.Text Selection.MoveDown Unit:=wdParagraph, Count:=1 Selection.MoveRight Unit:=wdWord, Count:=ss, Extend:=wdExtend b = Selection.Text If a = b Then Beep If MsgBox("فقرتان أولهما مكرر، هل ترغب في المتابعة؟", vbQuestion + vbYesNo) <> vbYes Then Exit Sub End If End If Selection.HomeKey Unit:=wdLine Loop Until (Selection.End = ActiveDocument.Content.End - 1) End Select Beep End Sub
  9. تحتاج أحيانا للبحث عن الخلايا الفارغة في الجدول لكتابة رمز معين، أو نص معين للبحث عنه، أو استكمال شيء ناقص، أو غير ذلك. وهذا الماكرو يتيح لك ذلك: ' ' إضافة رمز معين، أو نص معين للخلايا الفارغة ' ' Dim tTable As Table Dim cCell As Cell Dim sTemp As String ss = InputBox("أدخل الرمز أو النص الذي تريد أن تجعله في الخلايا الفارغة") sTemp = ss For Each tTable In ActiveDocument.Range.Tables For Each cCell In tTable.Range.Cells If Len(cCell.Range.Text) < 3 Then cCell.Range = sTemp End If Next Next Set oCell = Nothing Set tTable = Nothing End Sub
  10. الأمر بسيط، فلو أنك فتحت أي ملف فيه كلمات مميزة بأي لون، وشغلت الماكرو سيقوم الماكرو باستخراج كل الكلمات أو الجمل المميزة مع أرقام صفحاتها إلى ملف آخر.
  11. نعم، تفضل: ' 'ماكرو لإضافة مجموعة كلمات، أو جمل لاستخراجها آخر الملف مع أرقام الصفحات الموجودة فيها ' Dim strList As String Dim Coll As Collection Dim oRng As Range Dim vName As Variant Dim i As Integer, j As Integer ss = InputBox("أدخل الكلمات التي تريد فهرستها آخر الملف مفصولة بفاصلة ") strList = ss vName = Split(strList, "،") For i = 0 To UBound(vName) Set Coll = New Collection Set oRng = ActiveDocument.Range oRng.End = ActiveDocument.Range.Paragraphs(ActiveDocument.Range.Paragraphs.Count - i).Range.START With oRng.Find Do While .Execute(vName(i)) Coll.Add oRng.Information(wdActiveEndPageNumber) Loop End With ActiveDocument.Range.InsertAfter vbCr & vName(i) & ": " For j = 1 To Coll.Count ActiveDocument.Range.InsertAfter Coll(j) If j < Coll.Count Then ActiveDocument.Range.InsertAfter ", " Next j Next i lbl_Exit: Set oRng = Nothing Set Coll = Nothing Selection.EndKey Unit:=wdStory Beep Exit Sub End Sub
  12. نعم، تفضل: ' 'ماكرو لإضافة مجموعة كلمات، أو جمل لاستخراجها آخر الملف مع أرقام الصفحات الموجودة فيها ' Dim strList As String Dim Coll As Collection Dim oRng As Range Dim vName As Variant Dim i As Integer, j As Integer ss = InputBox("أدخل الكلمات التي تريد فهرستها آخر الملف مفصولة بفاصلة ") strList = ss vName = Split(strList, "،") For i = 0 To UBound(vName) Set Coll = New Collection Set oRng = ActiveDocument.Range oRng.End = ActiveDocument.Range.Paragraphs(ActiveDocument.Range.Paragraphs.Count - i).Range.START With oRng.Find Do While .Execute(vName(i)) Coll.Add oRng.Information(wdActiveEndPageNumber) Loop End With ActiveDocument.Range.InsertAfter vbCr & vName(i) & ": " For j = 1 To Coll.Count ActiveDocument.Range.InsertAfter Coll(j) If j < Coll.Count Then ActiveDocument.Range.InsertAfter ", " Next j Next i lbl_Exit: Set oRng = Nothing Set Coll = Nothing Selection.EndKey Unit:=wdStory Beep Exit Sub End Sub
  13. تحتاج أحيانا أن تكتب رقم الجزء مع الصفحة في مواضع مختلفة بصورة متكررة، وهذه المواضع ليس لها علامة محددة بحيث يمكن كتابة الترقيم بصورة آلية. ومعلوم أن كتابة الأرقام بشكل متكرر لا يخلو من خطأ. فهذا الماكرو يقوم بكتابة رقم الجزء والصفحة في الموضع الذي تحدده بين معقوفين على صورة [1/5]، [1/6]، وهكذا، ويمكن أن تغير رقم الجزء فيصبح [2/5]، [2/6] وهكذا. وهذا الماكرو: ' إدراج رقم جزء وصفحة بين معقوفين في الموضع الحالي ' ' Dim ss, a As Integer Selection.TypeText Text:="^" Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = "/<[0-9]@>\]" .Replacement.Text = "" .Forward = False .Wrap = wdFindStop .Format = False .MatchCase = False .MatchWholeWord = False .MatchKashida = False .MatchDiacritics = False .MatchAlefHamza = False .MatchControl = False .MatchAllWordForms = False .MatchSoundsLike = False .MatchWildcards = True End With Selection.Find.Execute If Selection.Find.Found = False Then ss = InputBox("أدخل رقم الجزء", , "1") If ss = False Then Exit Sub Else End If Selection.TypeBackspace Selection.TypeText Text:="[" & ss & "/]" Selection.MoveLeft Unit:=wdCharacter, Count:=1 Else Selection.MoveLeft Unit:=wdCharacter, Count:=1 Selection.MoveRight Unit:=wdWord, Count:=1 Selection.MoveRight Unit:=wdWord, Count:=1, Extend:=wdExtend a = Val(Selection.Text) Selection.MoveLeft Unit:=wdWord, Count:=1 Selection.MoveLeft Unit:=wdWord, Count:=3, Extend:=wdExtend b = Selection.Text Selection.MoveRight Unit:=wdWord, Count:=3 Selection.Find.ClearFormatting With Selection.Find .Text = "^" .Replacement.Text = "" .Forward = True .Wrap = wdFindStop .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 Selection.MoveLeft Unit:=wdCharacter, Count:=1 Selection.TypeText Text:=b Selection.MoveRight Unit:=wdCharacter, Count:=1 Selection.TypeText Text:="]" Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = "^" .Replacement.Text = "" .Forward = False .Wrap = wdFindStop .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 Selection.TypeText Text:=Val(a) + 1 Selection.MoveRight Unit:=wdCharacter, Count:=2 End If Beep End Sub
  14. نحتاج كثيرا إلى ترتيب مجموعة أرقام في فقرة محددة كُتبت بينها فاصلة، لكنها لم يُراع فيها الترتيب، والورد لا يمكن أن يرتب هذه الأرقام إلا إذا كان كل رقم في فقرة. مثال: ( 52، 25، 526، 528، 29، 530، 631، 532، 33) وهذه الأرقام مرتبة بشكل غير صحيح، ونحن نحتاج إلى ترتيبها لتصبح ( 25، 29، 33 ،52، 526، 528، 530، 532) وإذا أردت ذلك فعليك أولا أن تحدد هذه الأرقام المطلوب ترتيبها، ثم تشغل الماكرو ليقوم بترتيبها. وهذا الماكرو: ' ماكرو لترتيب أرقام محددة 'بحيث تظلل مجموعة أرقام بينها فاصلة (،) وتشغل الماكرو ليقوم بترتيب هذه الأرقام من الأصغر إلى الأكبر ' On Error Resume Next If Len(Selection.Text) = 1 Then MsgBox "من فضلك ظلل الأرقام التي تريد ترتيبها" Exit Sub Else End If If MsgBox("تنبيه: عند تحديد الأرقام يجب ألا يكون بعد الرقم الأخير مسافة أو فاصلة، أو أي علامة ترقيم، فهل ترغب في المتابعة؟", vbQuestion + vbYesNo) <> vbYes Then Exit Sub End If Selection.Copy Documents.Add DocumentType:=wdNewBlankDocument Selection.PasteAndFormat (wdFormatSurroundingFormattingWithEmphasis) Selection.MoveLeft Unit:=wdWord, Count:=1, Extend:=wdExtend Selection.Copy Selection.MoveLeft Unit:=wdCharacter, Count:=1 If Selection.Text = Chr(161) Then ' إذا كان آخر التظليل فاصلة ActiveWindow.Close (False) MsgBox ")،( لا يصح أن يكون آخر التظليل فاصلة " Exit Sub Else End If If Selection.Text = Chr(32) Then ' إذا كان آخر التظليل مسافة ActiveWindow.Close (False) MsgBox "لا يصح أن يكون آخر التظليل مسافة" Exit Sub Else End If If Selection.Text = Chr(13) Then ' إذا كان آخر التظليل مسافة كبيرة ActiveWindow.Close (False) MsgBox "لا يصح أن يكون آخر التظليل مسافة" Exit Sub Else End If Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = "،" .Replacement.Text = "^p" .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 Selection.Sort ExcludeHeader:=False, FieldNumber:="فقرات", SortFieldType:= _ wdSortFieldNumeric, SortOrder:=wdSortOrderAscending, FieldNumber2:="", _ SortFieldType2:=wdSortFieldAlphanumeric, SortOrder2:=wdSortOrderAscending _ , FieldNumber3:="", SortFieldType3:=wdSortFieldAlphanumeric, SortOrder3:= _ wdSortOrderAscending, Separator:=wdSortSeparateByTabs, SortColumn:=False, _ CaseSensitive:=False, LanguageID:=wdArabic, SubFieldNumber:="فقرات", _ SubFieldNumber2:="فقرات", SubFieldNumber3:="فقرات" Selection.Sort BidiSort:=False, IgnoreThe:=True, IgnoreKashida:=False, _ IgnoreDiacritics:=False, IgnoreHe:=False Selection.MoveUp Unit:=wdLine, Count:=1, Extend:=wdExtend Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = "^p" .Replacement.Text = "،" .Forward = True .Wrap = wdFindStop .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 Selection.EndKey Unit:=wdLine, Extend:=wdExtend Selection.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend Selection.Copy Selection.PasteAndFormat (wdPasteDefault) ActiveWindow.Close (False) Selection.PasteAndFormat (wdFormatSurroundingFormattingWithEmphasis) Beep End Sub
  15. لو عندك أي ملف مشكول فيه مثل هذه الكلمات، افعل الآتي: 1- ابحث عن أي كلمة آخرها ألف منوَّن: <[! ]@(ًا)> وفي خانة الاستبدال اختر (تمييز). 2- ابحث عن أي كلمة آخرها ألف قبله شدة وتنوين: <[! ]@(ًّا)> وفي خانة الاستبدال اختر (تمييز). 3- انسخ كل الكلمات المميزة (المنونة) إلى ملف آخر عن طريق البحث عن التمييز – مستند رئيسي. 4- افتح مستندا جديدا، وألصق فيه كل هذه الكلمات المميزة، واحفظ الملف بأي اسم، وليكن مثلا (كلمات منونة) 5- بهذا أصبح لديك قائمة بالكلمات التي آخرها ألف منوَّن. 6- افتح الملف المراد تشكيله، ثم شغِّل ماكرو التشكيل الآلي (أرسلته لك من قبل) 7- افتح من خلال ماكرو التشكيل ملف الكلمات المنونة، وسيقوم ماكرو التشكيل بتشكيل كل هذه الكلمات المنونة في الملف. * وبهذا يصبح عندك قاعدة بيانات من الكلمات المنونة قابلة للزيادة.
  16. استخدم هذا الماكرو، لاستبدال مجموعة كلمات متفرقة متباعدة بكلمة واحدة، مع مراعاة التشكيل: بعد تشغيل الماكرو: - ضع في خانة البحث : أَيْضا ، أيْضا ، أيضًا ، أيضا وفي خانة الاستبدال : أيضًا أو : أَيْضًا أو حسب ما تريد من ضبط، مع مراعاة المسافات ويمكن أيضا أن تضع كلمات مختلفة متباعدة في خانة البحث، لتستبدلها بكلمة واحدة. ' استبدال مجموعة كلمة متفرقة بكلمة واحدة ' ' Dim xFind As String Dim xReplace As String Dim xFindArr, xReplaceArr Dim i As Long Application.ScreenUpdating = False xFind = InputBox("أدخل هنا مجموعةالكلمات التي تريد استبدالها، مفصولة بفاصلة: ", "الكلمات المطلوب استبدالها") xReplace = InputBox(":أدخل الكلمة التي تريد استبدالها مكان الكلمات السابقة ", "الكلمة الجديدة") xFindArr = Split(xFind, "،") For i = 0 To UBound(xFindArr) With Selection.Find .ClearFormatting .Replacement.ClearFormatting .Text = xFindArr(i) .Replacement.Text = xReplace .Format = False .MatchWholeWord = False End With Selection.Find.ClearFormatting ' لو أردت حذف التمييز، فاحذف هذا السطر، والثلاثة التالية له Selection.Find.Replacement.ClearFormatting Selection.Find.Replacement.Highlight = True Options.DefaultHighlightColorIndex = wdBrightGreen Selection.Find.Execute Replace:=wdReplaceAll Next Application.ScreenUpdating = True Beep End Sub
  17. إذا أردت أن تبحث عن كلمة أو جملة لونها غير أسود، أو غير تلقائي، فهذا الماكرو سيفيدك إن شاء الله: ' ' البحث عن نص غير تلقائي (أسود) ' ' Dim OutPut As Integer With Selection.Find .Text = InputBox(prompt:=" : أدخل كلمة (جملة) البحث ", _ Title:="البحث عن الكلمات أو الجمل غير السوداء") Do While .Execute With Selection.Font If (.Color <> wdColorAutomatic) And _ (.Color <> wdColorBlack) Then If MsgBox("البحث عن التالي", vbQuestion + vbYesNo) <> vbYes Then Exit Sub End If End If End With Loop End With End Sub
      • 1
      • Like
  18. نحتاج أحيانا إلى حصر كل الجداول الموجودة ضمن ملفات متعددة للنظر فيها على حدة. وهذا ماكرو يبحث داخل الملفات التي تحددها داخل مجلد معين، فينسخ الجداول فقط، ثم يضعها في ملف مستقل لتنظر فيها. وهذا الماكرو: ' نسخ الجداول من مجلد معين ووضعها في ملف واحد Dim strFileName As String Dim strPath As String Dim oDoc As Document, oNewdoc As Document Dim oTable As Range, oRng As Range Dim oLog As Document Dim bFound As Boolean Dim fDialog As FileDialog Dim oColl As New Collection Dim i As Long, j As Long, k As Long On Error Resume Next Set fDialog = Application.FileDialog(msoFileDialogFolderPicker) With fDialog .Title = "حدد المجلد وانقر فوق موافق " .AllowMultiSelect = False .InitialView = msoFileDialogViewList If .Show <> -1 Then MsgBox "أُلغي الأمر", , _ "محتويات المجلد" GoTo lbl_Exit End If strPath = fDialog.SelectedItems.Item(1) & Chr(92) End With Set oNewdoc = Documents.Add strFileName = Dir$(strPath & "*.doc") While Len(strFileName) <> 0 Set oDoc = Documents.Open(filename:=strPath & strFileName, AddToRecentFiles:=False) bFound = False If oDoc.ProtectionType = wdNoProtection Then If oDoc.Tables.Count > 0 Then k = 0 bFound = True For i = 1 To oDoc.Tables.Count Set oTable = oDoc.Tables(i).Range oTable.Copy Set oRng = oNewdoc.Range oRng.Collapse 0 oRng.InsertParagraphAfter Set oRng = oNewdoc.Range oRng.Collapse 0 oRng.Paste k = k + 1 DoEvents Next i If bFound = True Then oColl.Add strFileName & vbTab & k & " tables copied" End If End If DoEvents End If oDoc.Close SaveChanges:=wdDoNotSaveChanges strFileName = Dir$() Wend Set oLog = Documents.Add For j = 1 To oColl.Count oLog.Range.InsertAfter oColl(j) & vbCr Next j lbl_Exit: Exit Sub Beep End Sub
  19. كثيرا ما ينسى مدخل البيانات وضع نقطة في آخر الفقرات للدلالة على نهايتها وبداية فقرة جديدة، وهذا غير صحيح. وهذا ماكرو لوضع نقطة في آخر الفقرات التي ليس في آخرها نقطة، أما التي وُضعت نقطة في آخرها فتبقى نهاية الفقرة كما هي. وهذا الماكرو: 'إضافة نقطة في آخر الفقرات التي ليس في آخرها نقطة ' Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting Selection.Find.Replacement.Highlight = True Selection.Find.Replacement.Font.Underline = wdUnderlineSingle With Selection.Find .Text = "[.:\؟\!]^13" .Replacement.Text = "" .Forward = True .Wrap = wdFindContinue .Format = True .MatchCase = False .MatchWholeWord = False .MatchKashida = False .MatchDiacritics = False .MatchAlefHamza = False .MatchControl = False .MatchAllWordForms = False .MatchSoundsLike = False .MatchWildcards = True End With Selection.Find.Execute Replace:=wdReplaceAll Selection.Find.ClearFormatting Selection.Find.Highlight = False Selection.Find.Font.Underline = wdUnderlineNone Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = "^13" .Replacement.Text = ".^&" .Forward = True .Wrap = wdFindContinue .Format = True .MatchCase = False .MatchWholeWord = False .MatchKashida = False .MatchDiacritics = False .MatchAlefHamza = False .MatchControl = False .MatchAllWordForms = False .MatchSoundsLike = False .MatchWildcards = True End With Selection.Find.Execute Replace:=wdReplaceAll Selection.Find.ClearFormatting Selection.Find.Highlight = False Selection.Find.Font.Underline = wdUnderlineNone Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = "^13" .Replacement.Text = ".^&" .Forward = True .Wrap = wdFindContinue .Format = True .MatchCase = False .MatchWholeWord = False .MatchKashida = False .MatchDiacritics = False .MatchAlefHamza = False .MatchControl = False .MatchAllWordForms = False .MatchSoundsLike = False .MatchWildcards = True End With Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting Selection.Find.Replacement.Highlight = False Selection.Find.Replacement.Font.Underline = wdUnderlineNone With Selection.Find .Text = "[.:\؟\!]^13" .Replacement.Text = "" .Forward = True .Wrap = wdFindContinue .Format = True .MatchCase = False .MatchWholeWord = False .MatchKashida = False .MatchDiacritics = False .MatchAlefHamza = False .MatchControl = False .MatchAllWordForms = False .MatchSoundsLike = False .MatchWildcards = True End With Selection.Find.Execute Replace:=wdReplaceAll Beep MsgBox "تم بحمد الله وضع نقطة في آخر الفقرات التي لا تنتهي بنقطة" End Sub
      • 1
      • Like
  20. • البحث عن كلمة أولها (ال) وآخرها (تنوين): <ال[! ]@[ًٌٍ]> • كلمة أولها (ال) وآخرها (ون) ليس بعدها (فتحة): ال[! ]@(ون)[!َ]> • البحث عن أي كلمة أو رمز، أو رقم: <[! ]*> • البحث عن أي كلمة، وهي تصلح في عمل الماكرو: <[أ-ىيئءؤآءاإًٌٍَُِّْ]@> • أو: <[أ-يَّآًٌٍُِْ]@> • البحث عن أي كلمة: <[أ-ي]@> أو: <?@?> • البحث عن أي كلمة: <[! ]@> يكتب قبلها كلمة عند البحث والاستبدال لأنها تبطئ الماكرو، وربما تهنج الورد. • البحث عن أي كلمتين: <[! ]@> <[! ]@> • البحث عن أي كلمتين الأولى تبدأ بهمزة، والثانية تنتهي بتاء مربوطة: <أ[! ]@> <[! ]@ة> • البحث عن أي كلمتين الأولى آخرها ألف، والثانية تنتهي بالألف: <[! ]@ا> <[! ]@ا> • البحث عن كلمتين متتاليتين مكررتين: (<* ){2} ، ويمكن البحث بـ{3، 4} أو <([أؤئإءيا-ى]@)> \1> أو: (<[ء-يا-ى]@)[ ,.;:]@\1> • البحث عن كلمتين، أو عددين، أو جملتين متتاليتين مكررتين: (<*>) \1 • البحث عن كلمتين، أو عددين، أو جملتين متتاليتين مكررتين بينهما فاصلة: (<*>)، \1 • ولحذف الكلمة أو الجملة المكررة نضع في مربع الاستبدال: \1 • البحث عن حرفين أو رقمين متتاليين متطابقين: (?){2} • البحث عن أي كلمتين أو حرفين أو رقمين متتاليين متطابقين: (<*){2} • البحث عن أي كلمتين متطابقتين بينهما أي كلمة: (<[! ]@>) [! ]@ \1 • البحث عن آخر كلمة في الخلية (تنفع للشعر): <[أ-ىيئءؤءاإًٌٍَُِّْ]@>[! ء-ى] • البحث عن آخر كلمة مشكولة في الخلية (تنفع للشعر): <[ء-ي]@[! ء-ي]> • البحث عن آخر كلمة مشكولة في الخلية آخرها (ا-و-ى-ي) (للشِّعر): <[ء-ي]@[! ء-ي][اوىي]> • البحث عن آخر كلمة مشكولة في الخلية بعدها مسافة (للشِّعر): <[ء-ي]@[! ء-ي]> • البحث عن آخر كلمة ليس بها أي تشكيل في الخلية (للشِّعر): <[ء-ي]@[! ًٌٍَُِّْ]>[! ء-يٰ] • أو: <[ء-ي]@>[!? ٰ] • البحث عن أي كلمة في الخلية عدا الكلمة الأخيرة: <[أ-ىيئءؤآءاإًٌٍَُِّْ]@>[!^13] • البحث عن أي كلمة في الخلية عدا الكلمة الأولى: [!^13]<[أ-ىيئءؤآءاإًٌٍَُِّْ]@> • البحث عن كلمة في الخلية عدا الأولى والأخيرة: [!^13]<[أ-ىيئءؤآءاإًٌٍَُِّْ]@>[!^13] • البحث عن أي رقمين متتاليين بينهما فاصلة مثل 22، 22، ويمكن بـ{3، 4}: (<*){2}، (<*){2} • البحث عن أي رقمين متتاليين بينهما فاصلة، وليس قبلهما سلاش: [!\/]<[0-9]@>، <[0-9]@>[!\/] • البحث عن أي رقمين متتاليين بينهما فاصلة، الثاني ليس قبله سلاش: <[0-9]@>، <[0-9]@>[!\/] • البحث عن فقرة وتظليلها: (*^13) • البحث عن فقرتين متتاليتين متطابقتين: (*^13)\1 • البحث عن ثلاث فقرات متتالية متطابقة: (*^13)\1\1 • البحث عن فقرة قبلها فقرة فارغة وبعدها فقرة فارغة: ^13{2}([!^13]@^13)^13 • البحث عن فقرة قبلها فقرة فارغة: ^13{2}([!^13]@^13) • البحث عن فقرة قبلها أو بعدها فقرة فارغة: ^13{2}([!^13]@) • ولحذف هاتين الفقرتين الفارغتين ضع في خانة الاستبدال: ^p<H1>\1 • البحث عن الفقرات المكررة بشكل متتالي: (*^13)(\1)@ • البحث عن فقرة عن طريق حروف البدل: ^13 • البحث عن فقرة قبلها أي حرف عن طريق حروف البدل: >^13 ، وبعدم اعتبار المسافة آخر الفقرة: >^13* • البحث عن أي فقرة إلى كلمة (في) مثلا للتظليل: <[! ]*في> • البحث عن فقرة ليس في نهايتها (.) أو (:) أو (؟) أو (!): ([!^13.:\؟\!\-\!]^13) • تحديد ما بين الفاصلتين: ، <[! ]*>، • تحديد ما بين أي كلمتين متطابقتين: (<[! ]@>) [! ]* \1 • تحديد أي كلمتين متطابقتين بعد كل منهما أي كلمة: (<[! ]@>) [! ]@ \1 (<[! ]@>) • تحديد ما بين كلمتين مثل: عن <[! ]*> عن • البحث عن أي كلمة مكونة من حرفين: <[! ]@{2}> • البحث عن أي كلمة مكونة من حرفين آخرها تنوين: <[! ]@{2}[!ًٌٍ]> • البحث عن كلمة خمس حروف ليس منها علامات الضبط: <[! ]@{5}[ًٌٍَُِّْ]> • للبحث عما بين قوسين هلاليين: (\(*)\) أو \(?@\) • للبحث عما بين قوسين هلاليين باستثناء علامة الحاشية: \(<[أ-ىيئءؤءاإًٌٍَُِّْ]*>\) • للبحث عما بين معقوفين: \[?@\] • للبحث عن أي رقم دون الحروف: [0???-9] • للبحث عن أي رقم فردي أو زوجي أو أكثر: <[0-9]@> • لتظليل رقم بعده سلاش (شرطة مائلة/) حتى آخر الفقرة: <[0-9]@>/*^13 • لوضع كل رقم بعده سلاش في فقرة: في خانة البحث: <[0-9]@>/ وفي الاستبدال: ^13^& • للبحث عن رقم واحد: <[0-9]{1}> أو رقمين: <[0-9]{2}> وهكذا بزيادة رقم بين {} • للبحث عن أي كلمة دون الأرقام: <[أ-ى][! ]@> • للبحث عن أي رقمين بينهما فاصلة: [0???-9]، [0???-9] • للبحث عن الأرقام بين سلاشين شرطتين مائلتين //: /[???0-9]*/ • للبحث عن أي رقم حتى نهاية الفقرة: [0-9]*^13 • للبحث عن الحروف والأرقام دون المسافات وعلامات الترقيم: [أ-ي0-9] • البحث عن الحاشية السفلية مع حروف البدل: ^2 • البحث عن الحاشية الفارغة التي بعد رقمها قوس هلالي: ^2\) [!ء-ي] • البحث عن الحاشية الفارغة التي ليست بين قوسين: ^2[!\)][!ء-ي] • البحث عن حاشية قبل علامة الترقيم: ([.:،؛\?\!])\(^2\) • البحث عن قوس مربع [ ليس له قوس غلق ] : \[[!\]]@^13 • البحث عن قوس هلالي ( ليس له قوس غلق ) : \([!\)]@^13 • البحث عن قوس مدبب ( ليس له قوس غلق ) : \«[!\»]@^13 • البحث عن قوس مرعوش ( ليس له قوس غلق ) : \{[!\}]@^13 • لعكس ترتيب كلمات متتالية مثل: عماد محمد أحمد، نضع في خانة البحث: (عماد) (محمد) (أحمد) : وفي خانة الاستبدال: \3 \2 \1 مع مراعاة أن تكون الأرقام باللغة الإنجليزية. • لنقل كلمة مكان سابقتها والعكس، مثل: محمد عمر ، نضع في خانة البحث: (محمد) (عمر) : وفي خانة الاستبدال: \2 \1 • لنقل علامة الحاشية قبل علامة الترقيم: في خانة البحث: ([.،:;\?\!])(\(^2\)) : وفي خانة الاستبدال: \2\1 • للبحث عن أكثر من مسافة متتالية: [ ]@([! ]) • ولجعلها مسافة واحدة نستبدلها بـ: \1 • لجعل علامة الحاشية بين قوسين: في مربع بحث اكتب الآتي ^f وفي مربع استبدال اكتب (^&) وهذا الكود يعني أن المكتوب في خانة البحث يساوي المكتوب في خانة الاستبدال، فيمكن استخدامه مع أي حرف وأي رقم، حيث الاستبدال لا ينفع مع أي حرف وأي رقم، لكن بإضافة هذا الكود يصبح الاستبدال متاحا. • لإضافة صفر بعد رقمين مثل (015): نضع في خانة البحث: <[0-9]{2}> وفي الاستبدال: 0^& • لإضافة صفر بعد رقم واحد، مثل (05): في خانة البحث: <[0-9]{1}> وفي الاستبدال: 0^& • للبحث عن أي رقم بعده صفر (0) بعده سلاش (/) على صورة (08/): 0^#/
      • 2
      • Like
×
×
  • اضف...

Important Information