Ekstensi ini menghasilkan konstruktor VB, getter/setter, daftar atribut kelas (dengan tipe dan nilai format output) dan pabrik tunggal dari deklarasi variabel kelas VB. Anda juga dapat merender semuanya dalam satu perintah! :)
Pilih atribut yang ingin Anda buat cuplikannya dan jalankan salah satu perintah berikut pada palet perintah 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. Atribut Const Pribadi (membutuhkan kata kunci Const dan atribusi pada akhirnya):
Private Const p_attr As String = "ATTRIBUTE"
2. Memformat kasus sel (membutuhkan kata kunci FORMAT dan VALUE , serta NumberFormat atau NumberFormatLocal sebagai tipe properti format objek Range di VBA):
' FORMAT NumberFormat VALUE @
' FORMAT NumberFormat VALUE yyyy-mm-dd
' FORMAT NumberFormat VALUE #####0.#0
3. Memformat warna sel (membutuhkan kata kunci FORMATCOLOR , BGCOLOR dan FGCOLOR , serta nilai numerik untuk warna latar belakang - 0 hingga 56 - dan warna konstan VB untuk warna latar depan - vbWhite, vbRed, vbBlack, dll):
' FORMATCOLOR BGCOLOR 1 FGCOLOR vbWhite
' FORMATCOLOR BGCOLOR 56 FGCOLOR vbBlack
' FORMAT NumberFormat VALUE #####0.#0 FORMATCOLOR BGCOLOR 56 FGCOLOR vbBlack
4. Pemformatan cell case dapat digabungkan (tipe format dan warna):
' FORMAT NumberFormat VALUE #####0.#0 FORMATCOLOR BGCOLOR 56 FGCOLOR vbBlack
5. Format angka juga dapat digunakan dengan atribut 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 vbBlack
6. Jika Anda tidak menyebutkan tipe atribut yang mana, ekstensi akan memahami di semua generator bahwa atribut tersebut adalah tipe Varian , misalnya:
Private p_attr As
Private p_attr
7. Kasus-kasus berikut akan menghasilkan kesalahan, jadi hindarilah hal tersebut dengan cara apa pun:
' *** 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 57
8. Kasus pabrik akan menampilkan file (jika tidak ada kesalahan yang muncul atau setidaknya ada satu atribut non-konstan) dalam folder Pabrik/. Anda mungkin diminta untuk menyetujui penggantian jika file pabrik tertentu sudah ada di folder tersebut.
Ide utama memiliki daftar atribut dengan format keluarannya masing-masing adalah untuk memudahkan keluaran setiap nilai atribut ke dalam baris Lembar. Sub berikut menggunakan daftar dan format masing-masing untuk melakukan iterasi melalui suatu objek dan menampilkan semua nilai atribut ke dalam satu baris:
'*******************************************
'*** @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
MIT © davikawasaki
Jangan ragu untuk mengirimi saya PR atau masalah untuk memperbaiki kode :)