أخر الاخبار

أساسيات VBA إكسل : كيفية استخدام المتغيرات في VBA‍‍‍‍‍‍ |اكسيل لتخزين جميع أنواع البيانات 2#

كيفية استخدام المتغيرات في 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


كيفية استخدام المتغيرات في VBA‍‍‍‍‍‍ | اكسيل  لتخزين جميع أنواع البيانات


وإليك كيفية تعيين قيم للخلايا في جدول ثنائي الأبعاد :

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


تعليقات
ليست هناك تعليقات
إرسال تعليق



    وضع القراءة :
    حجم الخط
    +
    16
    -
    تباعد السطور
    +
    2
    -