Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


10113 / 13644 ツリー ←次へ | 前へ→

【23602】リストアップについて あいんすと 05/3/29(火) 23:08 質問[未読]
【23604】Re:リストアップについて ichinose 05/3/30(水) 1:01 発言[未読]
【23608】Re:リストアップについて あいんすと 05/3/30(水) 9:51 お礼[未読]

【23602】リストアップについて
質問  あいんすと  - 05/3/29(火) 23:08 -

引用なし
パスワード
   質問ばかりでスイマセン。
コンボボックスで選択した項目をリストボックスにアップしていく
というマクロを作成したのですが、以下の場合だと、一度選択した
項目をダブってリストボックスに入力してしまいます。
リストボックスに同じものをリストアップしない良い方法ってありますか?
ちなみにコンボボックスには同じものはありません。

-----------------------------------------
Private Sub ComboBox1_Change()
With ListBox1
  If .ListCount + 1 > 32 Then
    MsgBox "入力可能なデータ数は最大32です"
    Exit Sub
  End If

'ラベルをリストに追加
  If ComboBox1.Value <> "" Then
    .AddItem ComboBox1.Value
    Label1.Caption = "現在" & (.ListCount + 1)
  End If

End With

End Sub

【23604】Re:リストアップについて
発言  ichinose  - 05/3/30(水) 1:01 -

引用なし
パスワード
   ▼あいんすと さん:
こんばんは。

>質問ばかりでスイマセン。
>コンボボックスで選択した項目をリストボックスにアップしていく
>というマクロを作成したのですが、以下の場合だと、一度選択した
>項目をダブってリストボックスに入力してしまいます。
>リストボックスに同じものをリストアップしない良い方法ってありますか?
>ちなみにコンボボックスには同じものはありません。
32件ぐらいなら一つ一つ調べていってみたらどうでしょうか?
'=================================
Private Sub ComboBox1_Change()
  Dim ret As Boolean
  Dim compvalue As Variant
  With ListBox1
   If .ListCount >= 32 Then
    MsgBox "入力可能なデータ数は最大32です"
    Exit Sub
    End If

'ラベルをリストに追加
   If ComboBox1.Value <> "" Then
    compvalue = ComboBox1.Value
    ret = True
    For idx = 0 To .ListCount - 1
     If .List(idx) = compvalue Then
       ret = False
       Exit For
       End If
     Next idx
    If ret = True Then
     .AddItem ComboBox1.Value
     Label1.Caption = "現在" & (.ListCount)
     End If
    
    End If
  End With

End Sub

【23608】Re:リストアップについて
お礼  あいんすと  - 05/3/30(水) 9:51 -

引用なし
パスワード
   ▼ichinose さん:

ありがとうございます。
非常に汎用性のあるツールになりました。
今後ともよろしくお願いします。

10113 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free