يقوم هذا الامتداد بإنشاء منشئات VB، والحروف/المحددات، وقائمة سمات الفئة (مع أنواع وقيم تنسيق الإخراج) والمصانع المفردة من إعلانات متغيرات فئة VB. يمكنك تقديمها جميعًا في أمر واحد أيضًا! :)
حدد السمات التي تريد إنشاء مقتطف منها وقم بتشغيل أحد الأوامر التالية في لوحة الأوامر Ctrl/Cmd + Shift + P :
$ VB getters and setters
$ VB constructor
$ VB class attribute list
$ VB class attribute list with output format list
$ VB factory from class attributes
$ VB full class
$ VB full class with factory
1. سمة Const الخاصة (تحتاج إلى الكلمة الأساسية Const والإسناد في النهاية):
Private Const p_attr As String = "ATTRIBUTE"2. تنسيق حالات الخلايا (يحتاج إلى الكلمات الأساسية FORMAT و VALUE ، بالإضافة إلى NumberFormat أو NumberFormatLocal كأنواع خصائص التنسيق لكائن Range في VBA):
' FORMAT NumberFormat VALUE @
' FORMAT NumberFormat VALUE yyyy-mm-dd
' FORMAT NumberFormat VALUE #####0.#03. تنسيق ألوان الخلايا (يحتاج إلى الكلمات الأساسية FORMATCOLOR و BGCOLOR و FGCOLOR ، بالإضافة إلى القيم الرقمية للون الخلفية - من 0 إلى 56 - وألوان VB الثابتة للون المقدمة - vbWhite، وvbRed، وvbBlack، وما إلى ذلك):
' FORMATCOLOR BGCOLOR 1 FGCOLOR vbWhite
' FORMATCOLOR BGCOLOR 56 FGCOLOR vbBlack
' FORMAT NumberFormat VALUE #####0.#0 FORMATCOLOR BGCOLOR 56 FGCOLOR vbBlack4. يمكن دمج حالات الخلايا التنسيقية (نوع التنسيق والألوان):
' FORMAT NumberFormat VALUE #####0.#0 FORMATCOLOR BGCOLOR 56 FGCOLOR vbBlack5. يمكن استخدام تنسيق الأرقام مع سمة Const أيضًا:
Private Const p_attr As String = "ATTRIBUTE" ' FORMAT NumberFormat VALUE @
Private Const p_attr As String = "ATTRIBUTE" ' FORMATCOLOR BGCOLOR 56 FGCOLOR vbBlack
Private Const p_attr As String = "ATTRIBUTE" ' FORMAT NumberFormat VALUE @ FORMATCOLOR BGCOLOR 56 FGCOLOR vbBlack6. في حالة عدم تحديد نوع السمة، فسوف يفهم الامتداد في جميع المولدات أن السمة هي نوع متغير ، على سبيل المثال:
Private p_attr As
Private p_attr7. الحالات التالية ستنتج أخطاء، لذا تجنبها بأي ثمن:
' *** No Public/Private declaration
p_attr As String
' *** No attribution from Const attribute
Private Const p_attr
Private Const p_attr As String = ""
' *** Const attribute with the Const keyword
Private p_attr As String
' *** FORMET instead of FORMAT, TextFormat not acceptable, VALUES instead of VALUE, " usages are not allowed in the format value
Private p_attr As String ' FORMET TextFormat VALUES "@"
' *** FORMETCOLOUR instead of FORMATCOLOR, BG_COLOR instead of BGCOLOR, vbblack instead vbBlack, " usages are not allowed in the BGCOLOR value (needs to be numeric)
Private p_attr As String ' FORMETCOLOUR BG_COLOR "1" FG_COLOR vbblack
' *** BGCOLOR and FGCOLOR without values
Private p_attr As String ' FORMATCOLOR BGCOLOR FGCOLOR
' *** BGCOLOR and FGCOLOR inverted positions, BGCOLOR value out of range (0-56)
Private p_attr As String ' FORMATCOLOR FGCOLOR vbBlack BGCOLOR 578. ستقوم حالات المصنع بإخراج الملف (في حالة عدم ظهور أي أخطاء أو وجود سمة واحدة غير ثابتة على الأقل) في مجلد المصانع/. قد يُطلب منك الموافقة على التجاوز في حالة وجود ملف المصنع المحدد في المجلد بالفعل.
الفكرة الرئيسية المتمثلة في وجود قائمة سمات مع مخرجات التنسيق الخاصة بها هي تسهيل إخراج كل قيمة سمة في صف الورقة. يستخدم Sub التالي القائمة والتنسيقات الخاصة بها للتكرار عبر كائن وإخراج جميع قيم السمات في صف واحد:
'*******************************************
'*** @Sub insertGenericRow *****************
'*******************************************
'*** @Argument {Worksheet} ws **************
'*** @Argument {Variant} classObj **********
'*** @Argument {Integer} myLL **************
'*******************************************
'*** Insert a header/shipment/charge *******
'*** inside a worksheet. *******************
'*******************************************
Sub insertGenericRow(ws As Worksheet, classObj As Variant , ByRef myLL As Integer )
Dim listLen As Integer
Dim i As Integer
i = 1
listLen = UBound(classObj.attributesList)
' Iterate through each ordered property from class and send it to the iterated cell with formats
With ws
For i = 0 To listLen
If Not (isEmpty(classObj.attributesFormatTypesList()(i))) Then
If classObj.attributesFormatTypesList()(i) = "NumberFormat" Then
If Not (isEmpty(classObj.attributesFormatValuesList()(i))) Then
.Cells(myLL, i + 1 ).NumberFormat = classObj.attributesFormatValuesList()(i)
End If
End If
End If
' classObj.attributesList() returns the list, and then classObj.attributesList()(i) access an i-element of the list
.Cells(myLL, i + 1 ).value = CallByName(classObj, classObj.attributesList()(i), VbGet)
' Format cell after inserting into sheet
If Not (isEmpty(classObj.attributesFormatTypesList()(i))) Then
If classObj.attributesFormatTypesList()(i) = "NumberFormat" Then
If Not (isEmpty(classObj.attributesFormatValuesList()(i))) Then
.Cells(myLL, i + 1 ).NumberFormat = classObj.attributesFormatValuesList()(i)
End If
End If
End If
Next
End With
myLL = myLL + 1
End Sub معهد ماساتشوستس للتكنولوجيا © دافيكاواساكي
لا تتردد في إرسال لي العلاقات العامة أو مشكلة لتحسين الكود :)