4

複数選択オプションのあるリストボックスがあります。関数を使用して入力しaddItemます。Google でこれに関する記事を見つけることはできませんが、リスト ボックスに表示されるテキストと実際の値を区別する必要があります。

例えば:

shown      hiddenvalue
--------   -----------
monday     A1
tuesday    A2
wednesday  C7

出来ますか?これらの値にアクセスするにはどうすればよいですか?

4

2 に答える 2

8

VBAリストボックスの場合:

  1. 2 つの列を宣言します ( ColumnCount = 2)。
  2. 2 つ目を非表示にします: ColumnWidths = ";0".
  3. 2 番目の列をバインド ( BoundColumn = 2) として宣言し、最初の列をテキスト ( TextColumn = 1) として宣言します。
  4. 値を追加する手順を用意します。

    Private Sub AddWithID(Text As String, ID As String)
      ListBox1.AddItem Text
      ListBox1.List(ListBox1.ListCount - 1, 1) = ID
    End Sub
    

現在、単一選択リストボックスの場合、.Valueまたはを使用.Textして、選択した値/テキストを見つけることができます。

複数選択リストボックスの場合、行のインデックスで.List(i, 0)for text と.List(i, 1)for value を使用できます。i

于 2012-06-16T09:32:10.123 に答える
3

別の方法...コレクションを使用します。

Private HiddenValue As New Collection

Private Sub CommandButton1_Click()
    AddItems "monday", "A1"
    AddItems "tuesday", "A2"
    AddItems "wednesday", "C7"
End Sub

Private Sub CommandButton2_Click()
    MsgBox "Shown Value :" & ListBox1.List(ListBox1.ListIndex) & vbNewLine & _
    "Hidden Value " & HiddenValue(ListBox1.ListIndex + 1)
End Sub

Private Sub AddItems(Text As String, ID As String)
    ListBox1.AddItem Text
    HiddenValue.Add ID
End Sub

SNAPSHOTS

ここに画像の説明を入力してください

于 2012-06-16T11:22:02.877 に答える