
いつもお世話になります
今、UserForm上で3個のListViewを使ってプログラムを運用していますが、時々ListViewで選択されているItemを削除うしようとするとエラーになる時が有ります
下記のステートメント中の8行目で起きます
選択はマルチ選択も出来るようにしています
1. Private Sub CommandButton4_Click()
2.
3. Dim itmSet As ListItem
4. Dim i As Integer
5.
6. With ListView1
7. For i = .ListItems.Count To 1 Step -1
8. Set itmSet = .ListItems(i)
9. If itmSet.Selected = True Then
10. .ListItems.Remove itmSet.Index
11. End If
12. Next
13. End With
14.
15. ListView1.SetFocus
16.
17. End Sub
私のマシンでは出ないのでデバッグに困っています
もし、ほかに安定したやり方が有ったら教えてください
以上、よろしくお願いいたします
No.1ベストアンサー
- 回答日時:
こんばんは。
最初に、質問要件としては、ListView のマルチセレクトの削除の方法で他にあるか、ということになるのではないかと思います。試しに、もっと効率的な方法を探しましたが、今の所見つかりません。
KeyとIndexを持つ連想配列のような気がしたのですが、どうも同じようにはいきません。
それで、私のいつもの十八番で、動的配列で処理してみました。
これは、切れ味の悪い答えになってしまいました。
Dim i As Integer, j As Integer
Dim ar
With ListView1
ReDim ar(.ListItems.Count - 1)
For i = 1 To .ListItems.Count
If .ListItems.Item(i).Selected Then
ar(j) = i
j = j + 1
End If
Next
ReDim Preserve ar(j - 1)
For i = UBound(ar) To 0 Step -1
.ListItems.Remove ar(i)
Next
End With
'//
なお、ListView 自体は、Excel 2003 で直接のサポートは終わっていたような気がします。Office の2007以上で標準でインストールしたら、ファイルが見つからないはずです。急遽、前のPCのバックアップから、MSSTKPRP.DLLをコピーして入れました。(他の方で試される方は、一考をお願いします)
いうもありがとうございます
こちらの方が安定感が有りそうなので使わせて頂きます
Excel2013ですが、ツールボックスに有ったので今回初めて使ってみました
良いものが出来ました
本当にありがとうございました
これからもよろしくお願いいたします
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
ListView 項目の選択/選択解除について
Visual Basic(VBA)
-
ListViewで複数選択された項目を一度に削除する方法
Visual Basic(VBA)
-
vba Listviewでのチェックボックスのイベントを教えてください
Excel(エクセル)
-
-
4
Listviewのデータを上から順番に取得 VBA
Visual Basic(VBA)
-
5
Excel VBA ListViewサブアイテムの文字色
その他(プログラミング・Web制作)
-
6
Vba ListViewの行挿入に関して教えてください
Visual Basic(VBA)
-
7
vba ListViewの選択色について教えてください
Excel(エクセル)
-
8
vba listviewにおけるtextのAlingmentを中央にしたい
Excel(エクセル)
-
9
ListViewで、非表示列って作れますか?
Visual Basic(VBA)
-
10
リストビューをスクロールさせるには
Visual Basic(VBA)
-
11
リストビューの項目の内容を変更する方法は?
Visual Basic(VBA)
-
12
ListViewの複数選択について
Visual Basic(VBA)
-
13
VBAでListViewのフォントを変更する方法
Visual Basic(VBA)
-
14
VBAのコマンドボタンの文字列の改行方法は?
Visual Basic(VBA)
-
15
ListViewから選択中の文字列を取得
Visual Basic(VBA)
-
16
VBA:ユーザーフォームのマルチページに色を付けたい。
Word(ワード)
-
17
ListViewのチェックボックスについて
Excel(エクセル)
-
18
ListView重複データ削除
Visual Basic(VBA)
-
19
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
-
20
VBAでListviewの並べ替えを数値で行なうには
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VLOOKUP FALSEのこと
-
【関数】【マクロ】売上X円以上...
-
エクセルシートの見出しの文字...
-
【マクロ 画像あり】Exact関数...
-
空白処理を空白に
-
同じ名前(重複)かつ 日本 ア...
-
excel
-
if関数の複数条件について
-
エクセルでフィルターした値を...
-
空白のはずがSUBTOTAL関数でカ...
-
【マクロ】エラー【#DIV/0!】が...
-
【マクロ】数式を入力したい。...
-
【関数】3つのセルの中で最新...
-
Excelで4択問題を作成したい
-
エクセルの文字数列関数と競馬...
-
オートフィルターの絞込みをし...
-
表計算ソフトでの様式の呼称
-
【画像あり】【関数】指定した...
-
エクセルに写真が貼れない(フ...
-
【関数】=EXACT(a1,b1) a1とb1...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA ListViewの選択Itemを削除する
-
エクセルで検索結果をユーザー...
-
Pythonの3Dグラフ表示に関する...
-
この問題の解き方を教えてください
-
平均滞留時間
-
【VBA】該当する文字列がある列...
-
★花の名前を教えて頂けないでし...
-
EXILIM Z30について
-
YouTubeでvrを見る時画面を2分...
-
「★」を境に文字を分割し隣のセ...
-
横浜市内の格安の理容室を教え...
-
英辞朗はすごいサイバー辞書ですが
-
エクセルVBAで配列?
-
合っていますか? Por favor
-
熱力学についてです。 1.00MPa,...
-
911Tはハンズフリーで話せますか?
-
エクセルVBA 繰り返し
-
時計に関する質問です
-
アリコの保険に入ってる人へ
-
エクセルマクロ(VBA)でテ...
おすすめ情報