الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

ماكرو لاحصاء جميع الحروف العربية فى ملف وورد

مغلق
بدأه محمد طاهر في 20 مارس 2002 · 10 رد · 1,204 مشاهدة · في طلب و دراسة وشرح البرامج
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

الاخ شمس ، هذا هو الماكرو

جربه و أخبرني

Dim LetterMat(2, 37) As Variant

Sub Countaletter()
   For j = 1 To 37
      LetterMat(2, j) = 0
   Next

   LetterMat(1, 1) = "أ"
   LetterMat(1, 2) = "ا"
   LetterMat(1, 3) = "آ"
   LetterMat(1, 4) = "إ"
   LetterMat(1, 5) = "ب"
   LetterMat(1, 6) = "ت"
   LetterMat(1, 7) = "ث"
   LetterMat(1, 8) = "ج"
   LetterMat(1, 9) = "ح"
   LetterMat(1, 10) = "خ"
   LetterMat(1, 11) = "د"
   LetterMat(1, 12) = "ذ"
   LetterMat(1, 13) = "ر"
   LetterMat(1, 14) = "ز"
   LetterMat(1, 15) = "س"
   LetterMat(1, 16) = "ش"
   LetterMat(1, 17) = "ص"
   LetterMat(1, 18) = "ض"
   LetterMat(1, 19) = "ط"
   LetterMat(1, 20) = "ظ"
   LetterMat(1, 21) = "ع"
   LetterMat(1, 22) = "غ"
   LetterMat(1, 23) = "ف"
   LetterMat(1, 24) = "ق"
   LetterMat(1, 25) = "ك"
   LetterMat(1, 26) = "ل"
   LetterMat(1, 27) = "م"
   LetterMat(1, 28) = "ن"
   LetterMat(1, 29) = "ه"
   LetterMat(1, 30) = "و"
   LetterMat(1, 31) = "ي"
   LetterMat(1, 32) = "ى"
   LetterMat(1, 33) = "ئ"
   LetterMat(1, 34) = "ؤ"
   LetterMat(1, 35) = "ء"
   LetterMat(1, 36) = "لا"
   LetterMat(1, 37) = "لآ"


Application.ScreenUpdating = True
Mycounter = 0
Selection.WholeStory
Mcount = Selection.Characters.Count
     ' MsgBox mcount
   For I = 1 To Mcount

    With Selection.Characters(I)
          Application.StatusBar = "Searching  ...." & _
             I & "/" & Mcount & "       Please Wait......."
        For j = 1 To 37
          If .Text = LetterMat(1, j) Then LetterMat(2, j) = _
          LetterMat(2, j) + 1
        Next
    End With
   Next I
   Dim m As String

   For j = 1 To 37
   m = m + (LetterMat(1, j)) + " : " + _
   Str(LetterMat(2, j)) + Chr(13)
   Next

   MsgBox m

End Sub
#2

الأخ الفاضل محمد

أنا لست خبيرا بالماكرو كما تظن

ولكننى حاولت نسخ الكود ووضعه أحد لماكرو لدى فى وورد

ولكن كلما جعلته يعمل يخرج لى رسالى compile error

فهل من الممكن أن تضعه لى فى أحد ملفات وورد كما فعلت سابقا

والله أنا منى عارف أودى وشى منك فين وواضح إن معظم اللى بيعرفوا فيجوال بيسك مطنشين لأن الموضوع مش بيهمهم وإلا كنت طلبت مساعدة شخص آخر

لقد أثقلت عليك فكن صبورا وكمل جميلك للآخر

تحياتى لك

#3

أخي العزيز

هذا هو الملف

http://mypage.ayna.com/mtarafa/CountallLetter.zip

#4

تسلم إيدك يا محمد

جميل لن ينسى لك ن الماكرو رائع وهو ما أتمناه تماما

المشكله الوحيده اللى فيه إن القائوه طويله وواخده كل الصفحه وفيه بعض الحروف اللى تحت مبعرفش اشوفها لو حلتها يبقى كثر خيرك ولو معندكش وقت مش مهم

المهم ألف الف شكر

أخوك شمس(f) (f)

#5

--------------------

السلام عليكم

اجعل دقة الشاشة 600*800

أو عدل الجزء الاخير من الكود كما يلي

   For j = 1 To 37
   m = m + (LetterMat(1, j)) + " : " + _
   Str(LetterMat(2, j)) + "          " ' + Chr(13)
   If j Mod 3 = 0 Then m = m + Chr(13)
   Next

   MsgBox m

-----------------------

#6

(f)

#8

رابط مثال مطور قليلا

و به احصاء لجميع الحروف و ليس العربية فقط

و أيضا مليئ البيانات فى المصفوفة عن طريق دالة

chr

و

Loop

countallletternew.zip

#9

اخي محمد ... لوسمحت

انا مش فاهم ايه وظيفة الماكرو الذي يقوم باحصاء جميع الحروف في ملف وورد ... ما هي فائدته بالضبط :o

#10

أخي العزيز

وظيفته هي عد الحروف :D

الحقيقة انه كان طلب من أحد الأخوة

و بالاضافة الي ذلك ربما يفيد فى تحليل يقوم به شخص ما تحليل لغوي متخصص أو حل مسابقة مثلا ، الله أعلم

لكن فى كل الاحوال هو مفيد للجميع كمثال يوضح طريقة كتابة ال VBA فى الوورد

فمن لا يريد الكود نفسه من الاخوة فليتصفح الكود نفسه فبالتأكيد في يوم ما سيحتاج احدنا الي كتابة كود فى الوورد للحصول علي شيئ ما

;)

أما عن غرض طالبه ، فقد أخبرني به ، و طلب ألا أخبر أحد فعذراً

و ان كان يريد هو الافصاح عنه فليتفضل مشكورا

ففي رأيي أنه ليس بسر و يمكنك استنتاجه من حديثي

:D

#11

والله انا مش عارف اقولك ايه واللا ايه واللا ايه على مجهودك ده الذي لا يقدر بثمن ولكن اقل شيء ممكن قوله ان يجعله الله في ميزان حسناتك :)

هذا الموضوع مغلق.

مواضيع مشابهة