
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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
ListView 項目の選択/選択解除について
Visual Basic(VBA)
-
Listviewのデータを上から順番に取得 VBA
Visual Basic(VBA)
-
VBA ListViewの選択Itemを削除する
Excel(エクセル)
-
-
4
Listviewに表示された文字のコピーペースト
Visual Basic(VBA)
-
5
ListViewの複数選択について
Visual Basic(VBA)
-
6
VBA:ユーザーフォームのマルチページに色を付けたい。
Word(ワード)
-
7
ListViewで、非表示列って作れますか?
Visual Basic(VBA)
-
8
VBAでListviewの並べ替えを数値で行なうには
Excel(エクセル)
-
9
ListViewで列を指定して表示させる方法
Excel(エクセル)
-
10
vba Listviewでのチェックボックスのイベントを教えてください
Excel(エクセル)
-
11
vba ListViewの選択色について教えてください
Excel(エクセル)
-
12
ListViewのチェックボックスについて
Excel(エクセル)
-
13
ListViewで複数選択された項目を一度に削除する方法
Visual Basic(VBA)
-
14
ExcelVBAのユーザーフォームの中に線を引きたい
Visual Basic(VBA)
-
15
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
16
ExcelVBAでListViewが使用できない
Visual Basic(VBA)
-
17
EXCEL VBA ListViewについて
Excel(エクセル)
-
18
vba listviewにおけるtextのAlingmentを中央にしたい
Excel(エクセル)
-
19
【VBA】【ユーザーフォーム_ListBox】オートフィルタで絞りこんだ値だけを取り出したい
Visual Basic(VBA)
-
20
リストビューをスクロールさせるには
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
private subモジュールを他のモ...
-
【C#/Java?】try-catchでcatch...
-
vbaのエラー対応(実行時エラー...
-
シグナル 6(SIGABRT)とは?
-
VB6にてネットワーク上にある共...
-
メモリ不足になった後の処理
-
Excel VBA セルの名前があるか...
-
どう増強すべきか
-
マクロで、次のコードへ行く前...
-
タイマーの使い方
-
【VBA】エラー処理で別プロシー...
-
VBAを使用した保存方法
-
【C#】Page_Loadさせない方法に...
-
COBOL OCCURSで指定したデータ...
-
VB.NET SPRED(チェックボック...
-
vbaレポート名の指定が間違って...
-
C言語のGOTO文(組み込み系)
-
cobolのコントロールブレイク
-
順番に処理させたい
-
非アクティブシートでの For Ea...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【C#/Java?】try-catchでcatch...
-
private subモジュールを他のモ...
-
vbaのエラー対応(実行時エラー...
-
シグナル 6(SIGABRT)とは?
-
IF文に時間(何時から何時ま...
-
マクロで、次のコードへ行く前...
-
Excel VBA セルの名前があるか...
-
どう増強すべきか
-
特定の名前のオートシェイプの...
-
途中で処理を中断させたい (ア...
-
特定のファイルを他のプロセス...
-
順番に処理させたい
-
Word VBA。各マクロの間に待ち...
-
StatusStripの表示が更新されな...
-
ドリブン??
-
ExcelのVBAで、選択したファイ...
-
RaiseEventのメリット
-
【VBA】エラー処理で別プロシー...
-
エクセルVBAでロックをかけたい
-
どうやってもFor文を抜けてしま...
おすすめ情報