كيفية استخدام المتغيرات في VBA | اكسيل لتخزين جميع أنواع البيانات
في هذه التدوينة سنكمل الحديث عن كيفية استخدام المتغيرات في VBA |اكسيل لتخزين جميع أنواع البيانات.
الجداول
تسمح لك
المتغيرات بتخزين قيمة واحدة لكل متغير ، وتسمح لك المصفوفات بتخزين العديد من
القيم لكل مصفوفة (استخدامها مشابه لاستخدام المتغيرات).
فيما يلي بعض
الأمثلة على العبارات:
'Exemple de déclaration de variable Dim var1 As String 'Exemple de déclaration de tableau à 1 dimension Dim tab1(4) As String 'Exemple de déclaration de tableau à 2 dimensions Dim tab2(4, 3) As String
الجدول ذي البعد الواحد
'Exemple de déclaration de tableau à 1 dimension Dim tab1(4) As String
في هذا
المثال أعلاه، يوجد رقم واحد فقط بين قوسين ، لذلك فهو جدول أحادي البعد.
يشير هذا الرقم أيضًا إلى عدد الخلايا في الجدول.
في هذه الحالة ،tab1(4) هو جدول يتكون خلاياه من 0 إلى 4 ، لذلك هي عبارة عن جدول مكون من 5 خلايا:
0
1
2
3
4
أدناه سنرى كيفية
تعيين قيم للمربعات الخمسة في هذا الجدول:
tab1(0) = "Valeur de la case 0" tab1(1) = "Valeur de la case 1" tab1(2) = "Valeur de la case 2" tab1(3) = "Valeur de la case 3" tab1(4) = "Valeur de la case 4"
الخلية الأولى في الجدول هي 0.
الجدول ثنائي الأبعاد
'Exemple de déclaration de tableau à 2 dimensions Dim tab2(4, 3) As String
وإليك كيفية
تعيين قيم للخلايا في جدول ثنائي الأبعاد :
tab2(0, 0) = "Valeur de la case rouge"
tab2(4, 1) = "Valeur de la case verte"
tab2(2, 3) = "Valeur de la case bleue"
الثوابت
تسمح لنا الثوابت بتخزين قيم مثل المتغيرات ، مع وجود اختلاف في أنه لا يمكنك تعديلها بعد التصريح عنها.
على سبيل
المثال ، في هذه الأسطر القليلة سنقوم بحساب مبلغ ضريبة القيمة المضافة بناءً على معدل ضريبة
القيمة المضافة 12.34٪:
Sub exemple() Cells(1, 1) = Cells(1, 2) * 0.1234 Cells(2, 1) = Cells(2, 2) * 0.1234 Cells(3, 1) = Cells(3, 2) * 0.1234 Cells(4, 1) = Cells(4, 2) * 0.1234 Cells(5, 1) = Cells(5, 2) * 0.1234 End Sub
لتجنب التكرار
وتسهيل قراءة هذا الرمز ، من الممكن إعلان معدل ضريبة القيمة المضافة ثابتًا:
Sub exemple() 'Déclaration de la constante + attribution de sa valeur Const TAUX_TVA As Double = 0.1234 Cells(1, 1) = Cells(1, 2) * TAUX_TVA Cells(2, 1) = Cells(2, 2) * TAUX_TVA Cells(3, 1) = Cells(3, 2) * TAUX_TVA Cells(4, 1) = Cells(4, 2) * TAUX_TVA Cells(5, 1) = Cells(5, 2) * TAUX_TVA End Sub
باستخدام الثوابت ، في اليوم الذي يتغير فيه معدل ضريبة القيمة المضافة ، سنحتاج فقط إلى تغيير قيمة الثابت في الرمز مرة واحدة بدلاً من البحث عن جميع قيم 0.1234 في الكود واستبدالها.
نطاق المتغيرات
إذا تم الإعلان عن المتغير في بداية الاجراء (فرعي) ، فيمكن استخدامه فقط في نفس الإجراء.
لا يتم الاحتفاظ بقيمة المتغير بعد تنفيذ الإجراء.
Sub procedure1() Dim var1 As Integer '=> Utilisation de la variable dans la procédure uniquement End Sub Sub procedure2() '=> Impossible d'utiliser var1 ici End Sub
لكي نستطيع استخدام متغير في جميع إجراءات الوحدة ، كل ما علينا فعله هو الإعلان عنه في بداية الوحدة.
أيضا نسطيع الاحتفاظ بقيمة المتغير حتى يتم إغلاق المصنف.
Dim var1 As Integer Sub procedure1() '=> Utilisation de var1 possible End Sub Sub procedure2() '=> Utilisation de var1 possible End Sub
نفس الشيء لاستخدام متغير في جميع الوحدات ، مع اختلاف ذلك Dim تم تغييره بواسطة Public :
Public var1 As Integer
للاحتفاظ
بقيمة المتغير في نهاية الإجراء ، استبدل Dim عبر Static :
Sub procedure1() Static var1 As Integer End Sub
للاحتفاظ بقيم
جميع المتغيرات في الإجراء ، أضف Static أمام Sub :
Static Sub procedure1() Dim var1 As Integer End Sub
كيفية إنشاء نوع المتغير الخاص بك
لن نتطرق إلى
هذه النقطة في هذه التدوينة ، سنرى فقط مثال بسيط يوضح ذالك :
'Création d'un type de variable Type Utilisateur Nom As String Prenom As String End Type Sub exemple() 'Déclaration Dim user1 As Utilisateur 'Attributions des valeurs à user1 user1.Nom = "Smith" user1.Prenom = "John" 'Exemple d'utilisation MsgBox user1.Nom & " " & user1.Prenom End Sub