リストの中身を調べて「◎」という字がないか調べて、その◎という字が見つかったらそのリストを消すのには、どうすればよいのでしょうか?
Dim counter As Integer'カウンター
dim A as string="◎"
For counter = 0 To 30'リストの行が30までとして
If ListBox1.Items.Item(counter) =A Then
ListBox1.Items.Item(counter) = ""
End If
Next
↑のような感じに書いてみましたが、エラー(追加情報 : 指定された引数は、有効な値の範囲内にありません。)が起こってしまって行き詰っています。
何かいい方法とどのようにしたら調べることができるのか教えてください。
お願いします。
ええっと、書き忘れていましたがバージョンはVB.netです。
編集 削除エラーメッセージに従い引数の有効な範囲を調べればいいんじゃないですか?
引数(counter)が何の時にエラーになってますか?For 文の動きを最初から
ステップ実行して下さい。
多分、30だからダメなんじゃないでしょうか?
…あまりVB.Netのことはわからないんだが、コレクション相手だったらfor each ステートメントを使えなかったっけ?
編集 削除'こんな感じとか・・
Dim counter As Integer
For counter = ListBox1.Items.Count - 1 To 0 Step -1
If InStr(ListBox1.Items.Item(counter), "◎") <> 0 Then
ListBox1.Items.RemoveAt(counter)
End If
Next
訂正です。
If InStr(ListBox1.Items.Item(counter), "◎") <> 0 Then→×
If ListBox1.Items.Item(counter) = "◎" Then→○
返信が遅くなりすいません。
人造人間ヴィビーンさんのとおりやってみたらできました!!消えたっ!!
30ってのがだめだったみたいです。
すいません。
特攻隊長まるるうさん、ガッさん、人造人間ヴィビーンさんありがとうございました!!!
上手くいったのですがちょっと疑問があって、
For counter = ListBox1.Items.Count - 1 To 0 Step -1
ここの文のStepっていうのはどういう機能を果たしているのでしょうか??
使ったこともみたこともなくって、-1から0までforでまわして、stepでどうなってるんでしょうか?
勉強の為に教えてください(>△<)
step調べたらありましたw
すいません。
ありがとうございました!