
VB2005の初心者です。
タイトル通り、ListViewから選択中の文字列によって処理を変えるプログラムを構築しようとしているのですが、うまくいきません。
ComboBoxの場合では
Private Sub button1_Click~
If ComboBox1.SelectedItem = "テスト" Then
処理
End if
でうまくいったのですが、ListViewの場合では
Private Sub button1_Click~
If ListView1.SelectedItems = "テスト" Then
処理
End if
と指定すると
「エラー1これらの引数で呼び出される、アクセス可能な '=' がないため、オーバーロードの解決に失敗しました」
とエラーがでます。
ListViewから選択中の文字列を取得するには「.SelectedItems」では取得できないのでしょうか?
VBに詳しい方ご教授お願いします。
No.1ベストアンサー
- 回答日時:
ComboBoxはSelectedItemと単数形ですよね
ListViewの場合SelectedItemsですから選択された複数の項目といったことになります
SelectedItemsはコレクションになるので 最初の選択項目なら
ListView1.SelectedItems(0)となりますので
if ListView1.SelectedItems(0).Text = "テスト" Then
といった具合に使います
もっとも選択アイテムない場合も考えられるので上記の前に
If ListView1.SelectedItems.Count = 0 then
Exit Sub
End if
を追加したほうがいいかもしれません
この回答への補足
ご返答ありがとうございます。
if ListView1.SelectedItems(0).Text = "テスト" Then
処理
End if
上記のように、最初に選択した"テスト"の項目は上手く動作したのですが
それ以降、他の項目を選択したり、同じ項目を2度クリックすると例外エラーが発生します。
「'0' の InvalidArgument=Value は 'index' に対して有効ではありません。パラメータ名: index」
因みに、選択する項目は一つのみとするので「MultiSelect」は無効にしています。
これらの対処方法も教えていただけると幸いです。
解決しました。
For Each l_text As ListViewItem In ListView1.SelectedItems
Dim subItem0 As String = l_text.SubItems(0).Text
If l_text.SubItems(0).Text = "テスト1" Then
処理
End If
If l_text.SubItems(0).Text = "テスト2" Then
処理
End If
とSubItems(0)すればうまくいきました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Visual Basic(VBA) VBAで質問ですが、皆さんはどの様に導き出しているのでしょうか? 6 2022/05/03 21:53
- Excel(エクセル) B列に文字がはいったらA列に数字が入るマクロードを完成させたい 4 2023/04/21 01:58
- Visual Basic(VBA) エクセル VBAで複数セル選択時エラーになる問題 3 2022/10/04 02:40
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Visual Basic(VBA) 【再々投稿】VBAのプログラムで動作しなくて困っています 8 2022/10/14 09:06
- Visual Basic(VBA) VBAの繰り返し処理について教えてください。 3 2022/08/02 13:21
- Visual Basic(VBA) 集めたシートのシート名を変更したい。 下記のコードでサブフォルダにあるファイルのSheet3を集めて 6 2022/08/23 10:38
- Visual Basic(VBA) VBA 参照先で選んだファイルをコピーし、出力先に別名で保存したい 8 2022/05/13 20:37
- Visual Basic(VBA) 実行時エラー´5854´ 文字列型パラメーターが長すぎます。 3 2023/06/08 21:17
このQ&Aを見た人はこんなQ&Aも見ています
-
Listviewのデータを上から順番に取得 VBA
Visual Basic(VBA)
-
ListView 項目の選択/選択解除について
Visual Basic(VBA)
-
ListViewの複数選択について
Visual Basic(VBA)
-
-
4
Listviewに表示された文字のコピーペースト
Visual Basic(VBA)
-
5
VBAでListviewの並べ替えを数値で行なうには
Excel(エクセル)
-
6
VBA ListViewの選択Itemを削除する
Excel(エクセル)
-
7
VBA:ユーザーフォームのマルチページに色を付けたい。
Word(ワード)
-
8
ListViewで列を指定して表示させる方法
Excel(エクセル)
-
9
ExcelVBAのユーザーフォームの中に線を引きたい
Visual Basic(VBA)
-
10
ListViewで、非表示列って作れますか?
Visual Basic(VBA)
-
11
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
12
vba ListViewの選択色について教えてください
Excel(エクセル)
-
13
vba listviewにおけるtextのAlingmentを中央にしたい
Excel(エクセル)
-
14
Vba ListViewの行挿入に関して教えてください
Visual Basic(VBA)
-
15
vba Listviewでのチェックボックスのイベントを教えてください
Excel(エクセル)
-
16
ListViewで複数選択された項目を一度に削除する方法
Visual Basic(VBA)
-
17
リストビューの項目の内容を変更する方法は?
Visual Basic(VBA)
-
18
ExcelVBAでListViewが使用できない
Visual Basic(VBA)
-
19
VBAでListViewのフォントを変更する方法
Visual Basic(VBA)
-
20
EXCEL VBA ListViewについて
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Vba Array関数について教えてく...
-
【マクロ】シートの変数へ入れ...
-
【マクロ】並び替えの範囲が、...
-
エクセルのVBAコードと数式につ...
-
エクセルのマクロについて教え...
-
エクセルの改行について
-
【VBA】 結合セルに複数画像と...
-
vbsでのwebフォームへの入力制限?
-
算術演算子「¥」の意味について
-
【マクロ】売上一覧YYYYMMDDHHS...
-
【マクロ】開いているブックの...
-
Vba セルの4辺について罫線が有...
-
vb.net(vs2022)のtextboxのデザ...
-
ダブルクリックで貼り付けた画...
-
VBAの「To」という語句について
-
VBAでユーザーフォームを指定回...
-
VBAでCOPYを繰り返すと、処理が...
-
【マクロ】変数を使った、文字...
-
エクセルのVBAコードについて教...
-
ワードの図形にマクロを登録で...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Vba セルの4辺について罫線が有...
-
vbsでのwebフォームへの入力制限?
-
【ExcelVBA】5万行以上のデー...
-
【マクロ】売上一覧YYYYMMDDHHS...
-
【マクロ】開いているブックの...
-
【マクロ】並び替えの範囲が、...
-
エクセルの改行について
-
エクセルのマクロについて教え...
-
vb.net(vs2022)のtextboxのデザ...
-
VBAでCOPYを繰り返すと、処理が...
-
VBA ユーザーフォーム ボタンク...
-
エクセルのVBAコードと数式につ...
-
エクセルのVBAコードについて教...
-
[VB.net] ボタン(Flat)のEnable...
-
【マクロ】変数を使った、文字...
-
改行文字「vbCrLf」とは
-
質問58753 このコードでうまく...
-
【マクロ】シートの変数へ入れ...
-
ワードの図形にマクロを登録で...
-
算術演算子「¥」の意味について
おすすめ情報