|
▼taka さん:
こんばんわ
キリ番オメ!
理解出来ても出来なくても、求めていた回答ではなくてもレスは付けましょう。
[#39924]
掲示板のトップにあるように「有志のボランティア精神」の皆さんが回答しています。
例えば、taka さんが回答者でスレ主からレスもなく新たに別スレを立てたらどう思いますか?
>comboboxの値によって、下記のコードの様に指定したlabelのbackcolorを変更したいのですが、うまくいきません・・・・。
>例えば、7を選択し、label23.65の色は変わるのですが、次に10を選択すると、7で選択して変わったlabelの色はそのまま残り、10で選択したlabelの色がプラスされてしまいます。
ついでなので、参考までにサンプルを、
(オブジェクト名が"Label"で始まる全てのオブジェクトに対応)
'*****標準モジュール*******************
Public lc() As Long
Sub test()
UserForm1.Show
End Sub
'*****ユーザーフォームモジュール*******************
Private Sub UserForm_Initialize()
Dim i As Long
Dim j As Long
j = 0
For i = 0 To Me.Controls.Count - 1
If Left(Me.Controls(i).Name, 5) = "Label" Then
ReDim Preserve lc(2, j)
lc(1, j) = i
lc(2, j) = Me.Controls(i).BackColor
j = j + 1
End If
Next i
ComboBox1.AddItem 0
ComboBox1.AddItem 1
ComboBox1.AddItem 2
ComboBox1.AddItem 3
End Sub
Private Sub ComboBox1_Change()
Call defcol
Select Case ComboBox1
Case 1
Label1.BackColor = &HC0C0FF
Label2.BackColor = &HC0C0FF
Case 2
Label3.BackColor = &HC0C0FF
Label4.BackColor = &HC0C0FF
Case 3
Label5.BackColor = &HC0C0FF
Label6.BackColor = &HC0C0FF
End Select
End Sub
Private Function defcol()
Dim i As Long
For i = LBound(lc, 2) To UBound(lc, 2)
Me.Controls(lc(1, i)).BackColor = lc(2, i)
Next i
End Function
|
|