اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

ماكرو لتحديد أرقام المجلدات التي بعدها سلاش (/) في فقرة إذا كان المسلسل خطأ


الردود الموصى بها

هذا ماكرو بسيط يقوم بتحديد أرقام المجلدات أو الأجزاء التي بعدها سلاش (/) ضمن فقرة معينة، بحيث يرصد كل رقمين للتأكد من أن التالي ليس اصغر من سابقه أو مساويه.

وهذا اختبار يحتاجه الباحث، حيث نجد أن أرقام المجلدات كثيرا ما تأتي غير مرتبة، فتجد مثلا: المجلد (5)، بعده (4)، أو (3) ونحو هذا، وهذا خطأ، ومن المعلوم أن تتبع أخطاء الأرقام من الصعوبة بمكان، لذا كان من الضروري معرفة هذه المواضع بطريقة آلية، لتكون أسرع وأضبط.

وهذا هو الماكرو لمن أراد:

 

Sub مسلسلمجلداتخطأ()
'
' مسلسلمجلداتخطأ Macro
'ماكرو يقوم بتحديد أرقام الأجزاء التي بعدها سلاش مثل (3/5)لمعرفة الأرقام المترتبة خطأ، بحيث يكون الرقم التالي أقل من السابق أو مساويه، ويكون ذلك من خلال الفقرات
'والطريقة: أن تقف في أي موضع من الملف ثم تشغل الماكرو ليقوم بتمييز الأرقام الخطأ باللون الأصفر
    
    Dim aa, b, c As Integer
   
    Selection.HomeKey Unit:=wdStory
    Selection.TypeParagraph
    For i = 1 To ActiveDocument.Paragraphs.Count
    
    Selection.MoveDown Unit:=wdParagraph, Count:=1, Extend:=wdExtend
    Selection.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend
    Selection.Font.Color = 10498160
    Selection.MoveLeft Unit:=wdCharacter, Count:=1
    Selection.Find.ClearFormatting
    Selection.Find.Font.Color = 10498160
    Selection.Find.Replacement.ClearFormatting
    
    For ii = 1 To 100
    With Selection.Find
        .Text = "/"
        .Replacement.Text = ""
        .Forward = True
        .Wrap = wdFindContinue
        .Format = True
        .MatchCase = False
        .MatchWholeWord = False
        .MatchKashida = False
        .MatchDiacritics = False
        .MatchAlefHamza = False
        .MatchControl = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    
   If Selection.Find.Found = False Then
   Exit For
   End
   End If
    Selection.MoveDown Unit:=wdParagraph, Count:=1
    Selection.Find.Execute
    Selection.Font.Color = wdColorRed
    Selection.MoveLeft Unit:=wdCharacter, Count:=1
    Selection.MoveLeft Unit:=wdWord, Count:=1, Extend:=wdExtend
    Selection.Font.Color = wdColorRed
    aa = Val(Selection.Text)
    Selection.MoveRight Unit:=wdWord, Count:=1
    Selection.Find.ClearFormatting
    Selection.Find.Font.Color = 10498160
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
        .Text = "/"
        .Replacement.Text = ""
        .Forward = True
        .Wrap = wdFindContinue
        .Format = True
        .MatchCase = False
        .MatchWholeWord = False
        .MatchKashida = False
        .MatchDiacritics = False
        .MatchAlefHamza = False
        .MatchControl = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    
   If Selection.Find.Found = False Then
   Exit For
   End
   End If
    Selection.MoveDown Unit:=wdParagraph, Count:=1
    Selection.Find.Execute
    Selection.MoveLeft Unit:=wdCharacter, Count:=1
    Selection.MoveLeft Unit:=wdWord, Count:=1, Extend:=wdExtend
    b = Val(Selection.Text) - 1
    Selection.MoveLeft Unit:=wdWord, Count:=1
    If aa > b Then
    Selection.MoveRight Unit:=wdWord, Count:=1, Extend:=wdExtend
    Options.DefaultHighlightColorIndex = wdYellow
    Selection.Range.HighlightColorIndex = wdYellow
    Selection.MoveRight Unit:=wdWord, Count:=1
    End If

    Next ii
    
    Selection.Find.ClearFormatting
    Selection.Find.Font.Color = 10498160
    Selection.Find.Replacement.ClearFormatting
    Selection.Find.Replacement.Font.Color = wdColorAutomatic
    With Selection.Find
        .Text = ""
        .Replacement.Text = ""
        .Forward = True
        .Wrap = wdFindContinue
        .Format = True
        .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.MoveDown Unit:=wdParagraph, Count:=1
   Next i
   Selection.HomeKey Unit:=wdStory
   Selection.Delete Unit:=wdCharacter, Count:=1
 
End Sub

 

  • Like 1
رابط هذا التعليق
شارك

  • 3 weeks later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information