• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ListBoxのBackColor変更)

ListBoxのBackColor変更方法がうまくいかない

このQ&Aのポイント
  • EXCEL2007のVBAを使用して、リストボックスの背景色を選択された項目に応じて変更しようとしていますが、正常に動作していません。
  • リストボックスの項目をクリックしても背景色が変わらない原因について、見落としている可能性や誤った手順があるかどうかを確認しています。
  • 質問者は、リストボックスの項目に基づいて背景色を変更する方法が正しいかどうかについてアドバイスを求めています。

質問者が選んだベストアンサー

  • ベストアンサー
  • kybo
  • ベストアンサー率53% (349/647)
回答No.2

>ちなみに、ユーザーフォームのイニシャライズの時に、 >UserForm1.ListBox1.BackColor = RGB(255, 128, 128) >としてやると背景色はピンクになるのですが、これはデザイン時と同じだからでしょうか? 私もそれ気になってました。 BeforeUpdate、AfterUpdate、DblClick とかに記述すれば出来ますね。 ClickとChangeはダメ見たいです。 Private Sub ListBox1_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean) If UserForm1.ListBox1.ListIndex = 0 Then  UserForm1.ListBox1.BackColor = RGB(255, 128, 128) 'ピンクなら背景をピンクに Else  UserForm1.ListBox1.BackColor = RGB(255, 255, 255) '白なら背景を白に End If End Sub

jupiter_v121
質問者

お礼

kybo様 迅速な回答ありがとうございます。 ListBox1_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean) で出来ました!しかし何ででしょうかね? ClickとかChangeでも変えさせてもらえるとやりやすいんですけどね(^^; とりあえず目的は果たせたので、アドバイス頂いたやり方で対処致します。 どうもありがとうございました。

その他の回答 (1)

  • kybo
  • ベストアンサー率53% (349/647)
回答No.1

VBAのヘルプには、 ~~~~~~~~~~~~ オブジェクトの背景色は、BackStyle プロパティが定数 fmBackStyleOpaque に設定されている場合に限り表示されます。 ~~~~~~~~~~~~ とあります。 ListBoxには、BackStyle プロパティがないので、デザイン時にしか色を変更出来ないと思われます。 ちなみに、 ComboBoxだとできるようです。

jupiter_v121
質問者

お礼

kybo様 早速のご回答ありがとうございます。 大変助かります。 >ListBoxには、BackStyle プロパティがないので、デザイン時にしか色を変更出来ないと思われます。 まったく気付きませんでした。仕様上、背景色はデザイン時にしか変更できないのですね。 なるほど、いくらやっても変わらない筈です・・・。 ちなみに、ユーザーフォームのイニシャライズの時に、 UserForm1.ListBox1.BackColor = RGB(255, 128, 128) としてやると背景色はピンクになるのですが、これはデザイン時と同じだからでしょうか? 度々で申し訳ありませんが、もし解りましたら教えて下さい。 以上、宜しくお願い致します。

関連するQ&A