「覚え間違い」を教えてください!

エクセルのユーザーフォーム上にあるリストボックスですが
必要に応じてボタンクリックでAddItemにより項目が追加されて行くリストボックスがあります

この複数行表示された項目の内
別のボタンクリックで最後に追加された行だけ削除していくには
どのように記述すればいいのでしょうか

-------------
abcde
fghij
klmno
pqrst
------------
と表示されていたリストボックスから
クリックするたびに
-------------
abcde
fghij
klmno
-------------

-------------
abcde
fghij
-------------
の様に最後の行だけ削除をしたいのです
単純に
ListBoX1.Clear
では全て消されてしまい
こまっています
ぜひお力をお貸し下さい
よろしくお願いします

A 回答 (3件)

失礼しました


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

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

お礼日時:2005/04/11 12:39

「最後の行だけ削除」ですから、こんな感じで、どうでしょうか。



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
    • good
    • 0
この回答へのお礼

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

お礼日時:2005/04/11 12:42

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のバージョンも明記のこと)
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報