この拡張機能は、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キーワードに加えて、VBA の Range オブジェクトの書式プロパティ タイプとしてNumberFormatまたはNumberFormatLocal が必要です)。
' FORMAT NumberFormat VALUE @
' FORMAT NumberFormat VALUE yyyy-mm-dd
' FORMAT NumberFormat VALUE #####0.#0
3. セルの色の書式設定 ( 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 vbBlack
4. 書式設定セルのケースは組み合わせることができます (書式タイプと色)。
' FORMAT NumberFormat VALUE #####0.#0 FORMATCOLOR BGCOLOR 56 FGCOLOR vbBlack
5. 数値形式は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. 属性のタイプが指定されていない場合、拡張機能はすべてのジェネレーターで属性がVariantタイプであることを理解します。次に例を示します。
Private p_attr As
Private p_attr
7. 以下の場合はエラーが出力されるため、絶対に避けてください。
' *** 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. Factory ケースは、Factories/ フォルダーにファイルを出力します (エラーが発生しないか、少なくとも 1 つの非定数属性がある場合)。特定のファクトリ ファイルがフォルダー内にすでに存在する場合、オーバーライドの承認を求められる場合があります。
属性リストにそれぞれの形式の出力を持たせる主なアイデアは、各属性値をシート行に簡単に出力できるようにすることです。次の 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
MIT © ダビカワサキ
コードを改善するための PR や問題点を私に遠慮なく送ってください:)