人生最悪の忘れ物

お世話になります。excel2013を使用しています。
ユーザフォームのListViewについて教えて下さい。
ListViewはチェックボックスを表示させるようにしています。

With Me.ListView1
.CheckBoxes = True
.MultiSelect = False
End With

チェックボックスを一つしかチェック入れないようにしたいのですが、どの様にすればよいでしょうか?
例えば1行目のチェックボックスがオンの時、2行目のチェックボックスをオンにしたら1行目はオフにしたいです。
For Eachでやると全てがオフになってしまうし、困っています。
どうかアドバイスよろしくお願い致します。

A 回答 (2件)

こんにちは、


ListView1の場合、こんな感じではいかがでしょう。

Private Sub ListView1_ItemCheck(ByVal Item As MSComctlLib.ListItem)
Dim lstitem As ListItem
  For Each lstitem In ListView1.ListItems
    If lstitem.Checked = True Then
      lstitem.Checked = False
    End If
  Next
  Item.Checked = True
End Sub
    • good
    • 0
この回答へのお礼

ありがとう

ありがとうございます。
無事解決できました!

お礼日時:2020/01/16 14:28

#1です。

いきなりコードですみませんでした。
アドバイスと言う事でしたね。
ユーザフォームのコントロールには、色々なイベントが用意されていますので
色々な事が出来ます。
(今回の場合はListView1のチェックボックスをONにしたらですね)
そのイベントを活用して~を行ったら実行するようにイベント内にコードを書きます。

イベントについては、VBEの上の部分で確認(添付図)したり、コントロール+イベント名やコントロールで~をしたらなどで
調べると良いでしょう。
「ListViewのチェックボックスについ」の回答画像2
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報

このQ&Aを見た人がよく見るQ&A