Excel VBA質問箱 IV

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

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


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

【8552】リストボックス k- 03/10/23(木) 17:11 質問
【8554】Re:リストボックス INA 03/10/23(木) 17:56 回答
【8559】Re:リストボックス k- 03/10/24(金) 9:43 お礼
【8558】Re:リストボックス Jカーター 03/10/24(金) 8:30 回答
【8560】Re:リストボックス k- 03/10/24(金) 9:54 お礼

【8552】リストボックス
質問  k-  - 03/10/23(木) 17:11 -

引用なし
パスワード
   テキストボックスに数値を入力し、
ボタンクリックによりリストボックスに数値を入力していきます。
そこで、リストボックス内にある数値と、新たに入力したテキストボックス内の数値が
同じ場合はリストボックスに数値を入力しないようにする。

また、リストボックス内にある複数の数値(11、13、17)をシートのa1,a2,a3に貼り付ける方法を教えてください。お願いします。

【8554】Re:リストボックス
回答  INA  - 03/10/23(木) 17:56 -

引用なし
パスワード
   >テキストボックスに数値を入力し、
>ボタンクリックによりリストボックスに数値を入力していきます。
>そこで、リストボックス内にある数値と、新たに入力したテキストボックス内の数値が
>同じ場合はリストボックスに数値を入力しないようにする。

Private Sub CommandButton1_Click()
Dim i As Long

  If TextBox1.Value = "" Then Exit Sub

  For i = 1 To ListBox1.ListCount
    If ListBox1.List(i - 1) = TextBox1.Value Then
      MsgBox "既に登録されています。"
      Exit Sub
    End If
  Next i
  
  ListBox1.AddItem TextBox1.Value
  
End Sub


>また、リストボックス内にある複数の数値(11、13、17)をシートの
>a1,a2,a3に貼り付ける方法を教えてください。

リストの1〜3項までの場合、

With WorkSheets("Sheet1")
  .Range("A1").Value = ListBox1.List(0)
  .Range("A2").Value = ListBox1.List(1)
  .Range("A3").Value = ListBox1.List(2)
End With

となります。

【8558】Re:リストボックス
回答  Jカーター  - 03/10/24(金) 8:30 -

引用なし
パスワード
   おじゃまします。
リストは元々配列なので配列変数に格納して扱うと便利です。
おまけで削除するのも追加してみました。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
'リスト追加ボタン
Private Sub CommandButton1_Click()
  Dim v As Variant
  
  If Me.TextBox1.Value = "" Then Exit Sub
  With Me.ListBox1
    If IsNull(.List(0)) Then
      .List = Array(Me.TextBox1.Value)
    Else
      v = .Column
      ReDim Preserve v(0, LBound(v, 2) To UBound(v, 2) + 1)
      If IsError(Application.Match(Me.TextBox1.Value, v, 0)) Then
        v(0, UBound(v, 2)) = Me.TextBox1.Value
        .Column = v
      End If
    End If
  End With
  Me.TextBox1.Value = ""
End Sub
'削除(消したいリストを選択してダブりクリック)
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
  With Me.ListBox1
    If IsNull(.List(0)) Then Exit Sub
    If .ListIndex = -1 Then Exit Sub
    .RemoveItem .ListIndex
    .ListIndex = -1
  End With
End Sub
'シートへの転記ボタン
Private Sub CommandButton2_Click()
  Dim v As Variant
  With Me.ListBox1
    If IsNull(.List(0)) Then Exit Sub
    v = .List
  End With
  Range("A1").Resize(UBound(v) + 1).Value = v
End Sub

はずしていたらすいません。

【8559】Re:リストボックス
お礼  k-  - 03/10/24(金) 9:43 -

引用なし
パスワード
   INA さん
Jカーター さん
回答ありがとうございます。

早速、確認しまたところ、うまく動きました。
大変参考になりました。

【8560】Re:リストボックス
お礼  k-  - 03/10/24(金) 9:54 -

引用なし
パスワード
   Jカーター さん

まとめてお礼してしまいました。改めてお礼します。
ありがとうございました。

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