[[20240718122910]] 『VBAListViewの初期表示について−−続き』(純丸) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『VBAListViewの初期表示について−−続き』(純丸)

 ↓の質問の続きです
[[20240717143555]]VBAListViewの初期表示について

 通りすがり助六さんのおかげでListViewの選択状態は解除出来たのですが、
 見た目は未選択(東京・神奈川・千葉いずれも反転していない)にもかかわらず、ListView1.SelectedItem は東京が返ります。

 未選択の状態を判定したいのですが、上記の理由により If ListView1.SelectedItem = "" という構文では判定出来ません。

 「全アイテムをループしてすべての Selected が Falseであれば未選択」という方法とは別に
 If ListView1.○○○ = "" などのように判定する方法(プロパティ)はありますか?

 調べてもわからなかったので、あれば教えていただけると助かります。
 よろしくお願いします。あれば

< 使用 Excel:unknown、使用 OS:unknown >


 ユーザーフォームに「ListView」と「CommandButtonを2つ」 配置して試してみて下さい。

 '選択インデックス(未選択は「-1」を返す)
 Private Sub CommandButton1_Click()
    Dim ret&
    If ListView1.SelectedItem Is Nothing Then
        ret = -1
    Else
        ret = ListView1.SelectedItem.index
    End If
    MsgBox ret
 End Sub

 '選択クリアボタン
 Private Sub CommandButton2_Click()
    Call SelectedAllClear
 End Sub

 Private Sub UserForm_Initialize()
    With Me.ListView1
        .View = lvwSmallIcon
        .ListItems.Add.Text = "東京"
        .ListItems.Add.Text = "神奈川"
        .ListItems.Add.Text = "千葉"
        Call SelectedAllClear
    End With
 End Sub
 Sub SelectedAllClear()
    Dim itm As Object
    For Each itm In ListView1.ListItems
        itm.Selected = False
    Next itm
    ListView1.SelectedItem = Nothing
 End Sub
(まる2021) 2024/07/18(木) 14:02:09

 ListView1.SelectedItem = Nothing が必要だったんですね。
 うまくいきました。
 まる2021さん、ありがとうございました。
(純丸) 2024/07/18(木) 14:31:36

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.