Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


4204 / 13644 ツリー ←次へ | 前へ→

【57896】Conboboxの背景色変更 dgo 08/9/19(金) 14:05 質問[未読]
【57897】Re:Conboboxの背景色変更 uni 08/9/19(金) 14:14 発言[未読]
【57905】Re:Conboboxの背景色変更 ichinose 08/9/19(金) 19:41 発言[未読]

【57896】Conboboxの背景色変更
質問  dgo  - 08/9/19(金) 14:05 -

引用なし
パスワード
   ユーザーフォームにComboboxを作成し
そのComboboxはSheet1のA1-A10を見に行き
そこから選択できるようにしてあります
Comboboxの中身を選ぶたびに
Comboboxの背景の色を変更させることは可能でしょうか
上から1番を選択したらComboboxの背景は青
上から2番を選択したらComboboxの背景は赤
上から3番を選択したらComboboxの背景は緑
などといった感じにしたいです

【57897】Re:Conboboxの背景色変更
発言  uni  - 08/9/19(金) 14:14 -

引用なし
パスワード
   コンボボックスのchangeイベントかを使用して、
ListIndexプロパティでインデックスを判断して
BackColorプロパティでコンボボックスの背景色を
制御すればいいと思います。

【57905】Re:Conboboxの背景色変更
発言  ichinose  - 08/9/19(金) 19:41 -

引用なし
パスワード
   ▼dgo さん:
こんばんは。

>ユーザーフォームにComboboxを作成し
>そのComboboxはSheet1のA1-A10を見に行き
>そこから選択できるようにしてあります
>Comboboxの中身を選ぶたびに
>Comboboxの背景の色を変更させることは可能でしょうか
>上から1番を選択したらComboboxの背景は青
>上から2番を選択したらComboboxの背景は赤
>上から3番を選択したらComboboxの背景は緑
>などといった感じにしたいです
サンプルコードです。

新規ブック(Sheet1というシート名が存在する)にユーザーフォーム(UserForm1)を
一つ作成してください。

このUserForm1には、コントロールは、コンボボックス(ComboBox1)を
一つだけ配置してください。

標準モジュールには

'=======================================================
Sub test()
  With Worksheets("sheet1")
    .Range("a1:a10").Value = Application.Transpose( _
         Array("a", "b", "c", "d", "e", "f", "g", "h", "i", "j"))
    .Range("b1:b10").Value = Application.Transpose( _
         Array(16711680, 255, 32768, 39423, 65535, 16751052, _
            65280, 13434828, 16711935, 12632256))
    End With
'サンプルデータを A1からA10に配置し、コンボボックス選択時の色を
'b1:b10に色を表すRGB値を配置します(a1 青 a2 赤 a3 緑・・・)
  UserForm1.Show
End Sub


UserForm1のモジュールには

'===============================================================
Private Sub ComboBox1_Change()
  With ComboBox1
    If .ListIndex >= 0 Then .BackColor = .List(.ListIndex, 1)
    End With
End Sub
'===============================================================
Private Sub UserForm_Initialize()
  With ComboBox1
    .ColumnCount = 1
    .BoundColumn = 1
    .List = Worksheets("sheet1").Range("a1:b10").Value
    End With
End Sub


これでtestを実行してみてください。
コンボボックスでリストから選択してみてください。

選択した内容に対応した色で塗りつぶしてくれます。

試してみてください。

4204 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free