- ベストアンサー
リストボックスと同じセルデータを削除する方法
- Office2010 Windows7環境で、ユーザーフォームのリストボックスを使用して、選択した項目と同じ項目が含まれるセルデータを削除する方法についてご質問です。
- 具体的には、摘要リストで選択した項目と同じ項目があるセルを、N3から最終行までの範囲で探し出し、削除する処理の実装方法がわかりません。
- さらに、削除するセルの1つ左側(M列)と2つ左側(L列)のセルのデータ、および選択した項目も一緒に削除する方法についても教えていただきたいです。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
ループの中で比較元を消してしまっています。 ボックスを消す前に比較元”摘要リスト.Value”を取得し、その値を再利用しないといけません。 ActiveCell.Offset 指定のセルがアクティブになっていないままの操作では動作不安定になります。 Range(r).Offset などでアクティブにしなくてもできます。 摘要リスト.Clear リスト項目を全削除していいんでしょうか。 摘要リスト.List(.ListIndex, 0) 全削除の後でリストの1番目の項目をなぜ空に? a = 摘要リスト.ListIndex 摘要リスト.RemoveItem(a) リストを選択していない時の処理は? このままだと""も検索対象になりませんか。 If ListBox1.ListIndex = -1 Then Exit Sub Dim i As Long Dim r As String Dim k As Variant Dim s As Boolean = False With ActiveWorkbook.Sheets("勘定科目") k = 摘要リスト.Value 摘要リスト.Clear For i = 3 To Range("N65536").End(xlUp).Row r = "N" & i If .Range(r).Value = k Then s = True Range(r).Offset(0, 0).Value = "" Range(r).Offset(0, -1).Value = "" Range(r).Offset(0, -2).Value = "" End If Next If s = True then 摘要リスト.List(.ListIndex, 0) = "" End if End With ここまで書いて、リストボックスをどうしたいのかわからなくなってきました。
お礼
kichi8000 さん 質問の仕方が下手にもかかわらず、ありがとうございました。 解決しました。 今後ともよろしくお願いします。