في كثير من الأحيان يحدث أننا بحاجة إلى العرض الأرقام المكتوبة باللغة الأوكرانية في Excel . على سبيل المثال، عرض عدد الصفحات في مستند كتابيًا - رقم
ولأغراض محاسبية أيضًا، يجب كتابة تكلفة المعاملة التجارية بالكلمات. على سبيل المثال المبلغ
ستجد أدناه وظيفة جاهزة على VBA، والتي تترجم أي رقم إلى تمثيله النصي باللغة الأوكرانية، أي في الرقم كتابيا . يجب إضافة هذه الميزة إلى كتابك قبل الاستخدام.
لهذا:
Function SUMINWORDS(n As Double, curr As Variant, kop As Variant) As String ' moonexcel.com.ua Dim Nums1, Nums2, Nums3, Nums4 As Variant Nums0 = Array("", "одна ", "дві ", "три ", "чотири ", "п'ять ", "шість ", "сім ", "вісім ", "дев'ять ") Nums1 = Array("", "один ", "два ", "три ", "чотири ", "п'ять ", "шість ", "сім ", "вісім ", "дев'ять ") Nums2 = Array("", "десять ", "двадцять ", "тридцять ", "сорок ", "п'ятдесят ", "шістдесят ", "сімдесят ", _ "вісімдесят ", "дев'яносто ") Nums3 = Array("", "сто ", "двісті ", "триста ", "чотириста ", "п'ятсот ", "шістсот ", "сімсот ", _ "вісімсот ", "дев'ятсот ") Nums4 = Array("", "одна ", "дві ", "три ", "чотири ", "п'ять ", "шість ", "сім ", "вісім ", "дев'ять ") Nums5 = Array("десять ", "одинадцять ", "дванадцять ", "тринадцять ", "чотирнадцять ", _ "п'ятнадцять ", "шістнадцять ", "сімнадцять ", "вісімнадцять ", "дев'ятнадцять ") If n < 1 Then SUMINWORDS = "Нуль " & curr & " " & Round((n - Fix(n)) * 100) & " " & kop If curr = "" Then SUMINWORDS = "Нуль" End If Exit Function End If ' نقوم بتقسيم الرقم إلى أرقام باستخدام الدالة المساعدة Class ed = Class(n, 1) dec = Class(n, 2) sot = Class(n, 3) tys = Class(n, 4) dectys = Class(n, 5) sottys = Class(n, 6) mil = Class(n, 7) decmil = Class(n, 8) sotmil = Class(n, 9) bil = Class(n, 10) ' فحص المليارات Select Case bil Case 1 bil_txt = Nums1(bil) & "мільярд " Case 2 To 4 bil_txt = Nums1(bil) & "мільярди " Case 5 To 9 bil_txt = Nums1(bil) & "мільярдів " End Select ' فحص الملايين Select Case sotmil Case 1 To 9 sotmil_txt = Nums3(sotmil) End Select Select Case decmil Case 1 mil_txt = Nums5(mil) & "мільйонів " GoTo www Case 2 To 9 decmil_txt = Nums2(decmil) End Select Select Case mil Case 0 If decmil > 0 Then mil_txt = Nums4(mil) & "мільйонів " Case 1 mil_txt = Nums1(mil) & "мільйон " Case 2, 3, 4 mil_txt = Nums1(mil) & "мільйона " Case 5 To 9 mil_txt = Nums1(mil) & "мільйонів " End Select If decmil = 0 And mil = 0 And sotmil <> 0 Then sotmil_txt = sotmil_txt & "мільйонів " www: sottys_txt = Nums3(sottys) ' نتحقق من الآلاف Select Case dectys Case 1 tys_txt = Nums5(tys) & "тисяч " GoTo eee Case 2 To 9 dectys_txt = Nums2(dectys) End Select Select Case tys Case 0 If dectys > 0 Then tys_txt = Nums4(tys) & "тисяч " Case 1 tys_txt = Nums4(tys) & "тисячa " Case 2, 3, 4 tys_txt = Nums4(tys) & "тисячі " Case 5 To 9 tys_txt = Nums4(tys) & "тисяч " End Select If dectys = 0 And tys = 0 And sottys <> 0 Then sottys_txt = sottys_txt & " тисяч " eee: sot_txt = Nums3(sot) ' نتحقق من العشرات Select Case dec Case 1 ed_txt = Nums5(ed) GoTo rrr Case 2 To 9 dec_txt = Nums2(dec) End Select ed_txt = Nums0(ed) rrr: ' تشكيل السطر الأخير SUMINWORDS = bil_txt & sotmil_txt & decmil_txt & mil_txt & sottys_txt & dectys_txt _ & tys_txt & sot_txt & dec_txt & ed_txt & curr & " " & Round((n - Fix(n)) * 100) & " " & kop If curr = "" Then SUMINWORDS = bil_txt & sotmil_txt & decmil_txt & mil_txt & sottys_txt & dectys_txt _ & tys_txt & sot_txt & dec_txt & ed_txt End If SUMINWORDS = UCase(Mid(SUMINWORDS, 1, 1)) + Mid(SUMINWORDS, 2) End Function ' وظيفة مساعدة للاختيار من بين عدد الأرقام Private Function Class(M, I) Class = Int(Int(M - (10 ^ I) * Int(M / (10 ^ I))) / 10 ^ (I - 1)) End Function
احفظ الملف ثم عد إلى Excel.
يمكنك الآن إدراج الوظيفة التي تم إنشاؤها في أي خلية من ورقة هذا الكتاب بالطريقة المعتادة - من خلال معالج الوظائف (زر في شريط الصيغة، الفئة تعريف المستخدم (User defined) أو ببساطة عن طريق كتابتها في الخلية يدويًا وتحديد الخلية التي تحتوي على المجموع كوسيطة. أيضًا، في معلمات الوظيفة، يمكنك تحديد اسم العملة (الهريفنيا، الدولار، اليورو، وما إلى ذلك) واسم المئات (البنسات، السنتات، وما إلى ذلك):
=SUMINWORDS(نص؛ عملة؛ مئات)
إذا في المعلمة "عمل" أدخل علامات الاقتباس المزدوجة الفارغة ( "" )، ثم سيتم عرض المبلغ ككل الرقم كتابيا :