いつもお世話になります
今、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で質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/06 17:46
- Visual Basic(VBA) ExcelVBAの転記について 1 2022/03/23 20:13
- Visual Basic(VBA) 【VBAエラー】Nextに対するForがありません 対策について 5 2022/11/21 21:26
- Visual Basic(VBA) ①ExcelVBAでカレンダーを作り、別のユザーフォームで日付を入力したいのですがエラーになります。 1 2023/02/17 18:39
- Visual Basic(VBA) 動きっぱなしです。止め方とプロシージャの間違いを教えて下さい! 5 2022/08/15 23:08
- Visual Basic(VBA) 実行時エラー´5854´ 文字列型パラメーターが長すぎます。 3 2023/06/08 21:17
- Visual Basic(VBA) VBA 参照先で選んだファイルをコピーし、出力先に別名で保存したい 8 2022/05/13 20:37
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Visual Basic(VBA) 形式を選択して貼り付け 以下のコードで「元」シートと「先」シートのA列に同じ値があったら指定範囲をコ 5 2022/11/11 07:30
このQ&Aを見た人はこんなQ&Aも見ています
-
風水の観点で選ぶ観葉植物とは?置き場所や上げたい運気ごとの注意点を紹介!
観葉植物で運気をアップするコツを、風水デザイン1級建築士の福島昌彦さんに伺った。
-
ListViewで複数選択された項目を一度に削除する方法
Visual Basic(VBA)
-
ListView 項目の選択/選択解除について
Visual Basic(VBA)
-
vba Listviewでのチェックボックスのイベントを教えてください
Excel(エクセル)
-
-
4
vba listviewにおけるtextのAlingmentを中央にしたい
Excel(エクセル)
-
5
Vba ListViewの行挿入に関して教えてください
Visual Basic(VBA)
-
6
リストビューをスクロールさせるには
Visual Basic(VBA)
-
7
ListViewの複数選択について
Visual Basic(VBA)
-
8
Excel VBA ListViewサブアイテムの文字色
その他(プログラミング・Web制作)
-
9
Listviewのデータを上から順番に取得 VBA
Visual Basic(VBA)
-
10
VBAでListViewのフォントを変更する方法
Visual Basic(VBA)
-
11
ListViewの画面の更新
Visual Basic(VBA)
-
12
ListViewの行選択について
Visual Basic(VBA)
-
13
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
14
excel VBA リストビューの行の変更
Visual Basic(VBA)
-
15
ListViewで列を指定して表示させる方法
Excel(エクセル)
-
16
ListViewの選択、選択解除を行いたい
Visual Basic(VBA)
-
17
EXCEL VBA ListViewについて
Excel(エクセル)
-
18
VBAでユーザーフォームを再表示させたい。
Excel(エクセル)
-
19
リストビューの項目の内容を変更する方法は?
Visual Basic(VBA)
-
20
checkbox付きListViewで デフォルトチェック
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelの関数について教えてくだ...
-
エクセルファイルがファイルの...
-
一つのセルに(例えばA1)入力...
-
エクセル vbaについて教えてく...
-
Excel 複数列 A列B列C列一致 D...
-
【マクロ】名前を保存する際に...
-
Excelについて教えてください
-
エクセル マクロ チェックボックス
-
エクセルであるセルに数字を入...
-
【Excel】数字を3倍にし、なお...
-
エクセル共有したが、アクセス...
-
【マクロ】顧客番号にて一致さ...
-
Excel分析ツールでのポアソン回...
-
エクセルで年休を管理する方法...
-
エクセルのデーターが2か月前の...
-
LOOKUP関数を使えばいいのでし...
-
エクセル②
-
エクセルを使っていて2024/5/15...
-
Excelでセルの値が同じか...
-
エクセルでの作業計算方法について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel 2019 のピボットテーブル...
-
[関数得意な方]教えて下さい・...
-
Excelにてある膨大なデータを管...
-
[関数について]わかる方教えて...
-
Excel初心者です。 詳しい方、...
-
excelの不要な行の削除ができな...
-
エクセル関数に詳しい方教えて...
-
INDIRECTを使わず excelで複数...
-
[オートフィルタ]で抽出された...
-
エクセルの神よ、ご回答を! エ...
-
エクセル関数に詳しい方、教え...
-
各ページの1番上の表示について
-
Excelで写真のような表を作った...
-
エクセルで不等号記号(≠)が上に...
-
数学 Tan(θ)-1/Cos(θ)について...
-
Excel 2019 は、SPILL機能があ...
-
Excelで全角を半角にしたいので...
-
条件付き書式を教えてください
-
Excel フィルターを掛けた状態...
-
[オートフィルタ]の適用範囲の...
おすすめ情報