• ベストアンサー

複数行表示されたリストボックスから最後の行だけ削除するには

エクセルのユーザーフォーム上にあるリストボックスですが 必要に応じてボタンクリックでAddItemにより項目が追加されて行くリストボックスがあります この複数行表示された項目の内 別のボタンクリックで最後に追加された行だけ削除していくには どのように記述すればいいのでしょうか ------------- abcde fghij klmno pqrst ------------ と表示されていたリストボックスから クリックするたびに ------------- abcde fghij klmno ------------- ------------- abcde fghij ------------- の様に最後の行だけ削除をしたいのです 単純に ListBoX1.Clear では全て消されてしまい こまっています ぜひお力をお貸し下さい よろしくお願いします

質問者が選んだベストアンサー

  • ベストアンサー
  • stouma
  • ベストアンサー率35% (142/399)
回答No.2

失礼しました 最後の行では ListBox1.RemoveItem (ListBox1.ListCount - 1) と記載してください。 なお、下記同様に On ErrorとErrHanderは記載してください。 また、記載しない場合は If ListBox1.ListCount>0 Then等で リストにデータがないときは処理しないよう 心がけてください。

ecoecojp
質問者

お礼

ありがとうございました 助かりました

その他の回答 (2)

  • ja7awu
  • ベストアンサー率62% (292/464)
回答No.3

「最後の行だけ削除」ですから、こんな感じで、どうでしょうか。 Private Sub CommandButton1_Click() Dim Lcnt As Long Lcnt = Me.ListBox1.ListCount If Lcnt > 0 Then   Me.ListBox1.RemoveItem (Lcnt - 1) End If End Sub

ecoecojp
質問者

お礼

ありがとうございました 参考になりました

  • stouma
  • ベストアンサー率35% (142/399)
回答No.1

Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)   On Error GoTo ErrHander   ListBox1.RemoveItem (ListBox1.ListIndex) ErrHander:   Err.Clear End Sub こんなんではだめでしょうか? なお、Office Excel 2003にて動作確認はしました。 ダブルクリックにより削除されます。 (質問の際にはOfficeのバージョンも明記のこと)