【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】

エクセルのワークシート上に配置するリストボックスで複数選択する場合に値(番号)を返す方法を教えてください。よろしくお願いします。

A 回答 (3件)

補足に書かれているURLでは「フォーム」のリストボックスを利用していますが、まずこれは「コントロールツールボックス」のリストボックスに変更してください。



シート上にリストボックスを貼り付けたら、プロパティのListFilRangeにリストに表示する値の範囲を指定し、MultiSelectの値は1(複数選択可)にしてから、コードの表示で開く画面に以下のマクロを貼り付けてください

Private Sub ListBox1_Change()
Dim idx, ptr As Integer
Const trg As String = "A15" '選択値を書き込む最初のセルアドレス
 With ListBox1
  ActiveSheet.Range(trg).Resize(.ListCount).ClearContents
  For idx = 0 To .ListCount - 1
    If .Selected(idx) Then
      ActiveSheet.Range(trg).Offset(ptr, 0).Value = .List(idx)
      ptr = ptr + 1
    End If
  Next idx
 End With
End Sub

コントロールツールボックスの「デザインモード終了」した後で、リストボックスの値を選択するとA15セルから下方向に選択した値がセットされます。

>複数選択する場合に値(番号)を返す方法
が具体的に書かれていないのでマクロ3行目に書いたセルアドレスから下方向に書き込むようにしました。値の返し方はご自由に変更してください
    • good
    • 0

以下を参考にして下さい。


http://www.geocities.jp/happy_ngi/YNxv9g042.html

この回答への補足

回答ありがとうございます。
申し訳ありませんが下記のサイトの応用なのですが、別窓が出ないようなマクロはありませんか?
http://pc.nikkeibp.co.jp/article/NPC/20060214/22 …

補足日時:2007/12/05 16:28
    • good
    • 1

VBAで


Dim i As Integer
For i = 1 To Me.ListBox1.ListCount - 1
If Me.ListBox1.Selected(i) = True Then MsgBox i
Next
みたいな事ですか?

この回答への補足

早速の回答ありがとうございます。
説明が下手でして・・・
申し訳ありませんが下記のサイトの応用なのですがよろしくお願いします。
http://pc.nikkeibp.co.jp/article/NPC/20060214/22 …

補足日時:2007/12/05 15:58
    • good
    • 0

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


おすすめ情報