[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『リストボックス内の選択状態(青色)を残したい』(フォーキー)
お世話になります。
ユーザーフォームにリストボックスが二つあります。
それぞれEnterイベントとExitイベントで背景色が変わるように設定しています。
以下コードです
Option Explicit Private Sub ListBox1_Enter() Me.ListBox1.BackColor = RGB(255, 255, 0) End Sub
Private Sub ListBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean) Me.ListBox1.BackColor = RGB(255, 255, 255) End Sub Private Sub ListBox2_Enter() Me.ListBox2.BackColor = RGB(255, 255, 0) End Sub
Private Sub ListBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean) Me.ListBox2.BackColor = RGB(255, 255, 255) End Sub Private Sub UserForm_Initialize() With Me .ListBox1.AddItem "あ" .ListBox1.AddItem "い" .ListBox2.AddItem "う" .ListBox2.AddItem "え" End With Me.ListBox1.ListIndex = 0 Me.ListBox1.SetFocus End Sub
このとき、例えばリストボックス1の「あ」を選択した状態でリストボックス2に移動すると、青色の選択状態が解除されます。
Exitイベント内のコードをコメントアウトすると青色選択は残るので、どうも背景色を変えるのがだめみたいです。
ListIndexプロパティを見ると、青色や点線がないだけで選択はされているんですが、青色にならないです。
背景色を変更した後も青色を残す方法はないでしょうか。
< 使用 Excel:Excel2016、使用 OS:Windows10 >
BackColorを変更したあと、選択しなおす
Private Sub ListBox1_Enter() Me.ListBox1.BackColor = RGB(255, 255, 0) i = Me.ListBox1.ListIndex Me.ListBox1.ListIndex = -1 Me.ListBox1.ListIndex = i End Sub Private Sub ListBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean) Me.ListBox1.BackColor = RGB(255, 255, 255) i = Me.ListBox1.ListIndex Me.ListBox1.ListIndex = -1 Me.ListBox1.ListIndex = i End Sub (´・ω・`) 2022/10/01(土) 20:11
> Me.ListBox1.ListIndex = -1 なるほど、一度解除しなきゃいけないんですね。 ありがとうございます。できました。 (フォーキー) 2022/10/01(土) 20:26
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.