ドロップダウンリストのチェックボックス

ドロップダウンリストのチェックボックス

Excel に、1 つのセルのドロップダウン リストから複数の項目を選択できるテーブルがあります。

現在、マクロを使用してすべてのオプションを個別に選択する必要があり、それらは 1 つずつセルに追加されます。

ドロップダウン リストにチェック ボックスを追加するマクロを作成して、追加したい項目をチェックすると同時に追加されるようにすることは可能でしょうか?

答え1

はい、フォーム リスト ボックスを追加して、複数の選択を許可できます。こちらをご確認くださいMS サポート用。

VBA - チェックこのstackoverflowのスレッド

答え2

さて、リストボックスには次のコードを使用しました:

Dim lngItem As Long
Const strSep = ", " 'delimiter

Private Sub UserForm_Initialize()
With ListBox1
    .RowSource = "=Sheet1!A2:A12"
    For lngItem = 0 To ListBox1.ListCount - 1
        .Selected(lngItem) = InStr(1, strSep & ActiveCell.Value & strSep, strSep & .List(lngItem, 0) & strSep)
    Next lngItem
End With
End Sub

Private Sub CommandButton1_Click()
Dim strItems As String
With ListBox1
    For lngItem = 0 To ListBox1.ListCount - 1
        If ListBox1.Selected(lngItem) Then
            strItems = strItems & strSep & ListBox1.List(lngItem, 0)
        End If
    Next lngItem
End With
With ActiveCell
    .NumberFormat = "@"
    .Value = Replace(strItems, strSep, "", 1, 1)
End With
Unload Me
End Sub

列選択の場合は次のようになります:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Column <> 3 Or Target.Row = 1 Then Exit Sub
UserForm1.Show
Cancel = True
End Sub

非常にうまく機能していますが、1つ変更したい点があります。

現時点では、リストボックスはセルをダブルクリックすると表示されますが、ワンクリックだけで表示できるようにする可能性はありますか? また、リストボックスが常に選択したセルの下に表示されるように変更することはできますか?

答え3

添付の画像を見ると、これが完璧な解決策であることがわかります。リストボックス内でチェックボックスを使用します。

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

コードをダウンロード: http://www.vlsiip.com/exceltips.html

関連情報