UFの全コントロールのTypeNameを出力する
を実行するとコントロールの型がイミディエイトウインドウに列挙されます。
Private Sub UFの全コントロールのTypeNameを出力する()
Dim e As Control
For Each e In Me.Controls
Debug.Print e.Name, TypeName(e)
Next
End Sub
UFの全コントロールを着色する
内のSelect
文で仕分けてから着色なりフォント設定なりすると統一感のあるデザインになります。
ユーザーフォーム自体はコントロールではないのでコントロールを入れる引数の型はVariant
にしてます。
Enum clrUF
黒 = 0
灰_淡い = 12632256
薄い橙 = 8696052
End Enum
Private Sub UFの全コントロールを着色する()
Call 指定コントロールを着色(Me, clrUF.黒, clrUF.灰_淡い)
Dim e As Control
For Each e In Me.Controls
Call 指定コントロールのフォント設定(e, "Meiryo UI", 12, False)
Select Case TypeName(e)
Case "Label", "Frame"
Call 指定コントロールを着色(e, clrUF.黒, clrUF.灰_淡い)
Case "ListView4", "TextBox"
Call 指定コントロールを着色(e, clrUF.黒, clrUF.薄い橙, clrUF.灰_淡い)
Case "CommandButton"
Call 指定コントロールを着色(e, clrUF.灰_淡い, clrUF.黒)
End Select
Next
End Sub
Private Sub 指定コントロールのフォント設定(myControl As Variant, _
フォント As String, _
サイズ As Double, _
Optional Bold As Boolean)
Rem myControlがVariantなのはMeがControlではないため
With myControl.Font
.Name = フォント
.Size = サイズ
.Bold = Bold
End With
End Sub
Private Sub 指定コントロールを着色(myControl As Variant, _
背景色, _
文字色, _
Optional 境界色)
Rem myControlがVariantなのはMeがControlではないため
On Error Resume Next
With myControl
.BackColor = 背景色
.ForeColor = 文字色
If IsMissing(境界色) = False Then: .BorderColor = 境界色
End With
End Sub
ListView
のTypeName
がListView4
なの初めて知った。