Excel でドロップダウン リストから複数選択する方法 (3 つの方法)
状況によっては、ドロップダウン リスト内で複数の値を選択する必要がある場合があります。このチュートリアルでは、ドロップダウン リストで複数選択を行う方法を紹介します。このセッションでは、Excel 2019 を使用しています。好みのバージョンを自由に使用してください。
セッションに入る前に、例のベースとなるデータセットについて知りましょう。
ここにはいくつかのひな形要素があり、これらを使用してドロップダウン リストを作成し、そこで複数のアイテムを選択します。
物事を簡単にするための単純なデータセットであることに注意してください。実際のシナリオでは、はるかに大規模で複雑なデータセットに遭遇する可能性があります。
練習用ワークブック
以下のリンクから練習用ワークブックをダウンロードしてください。
ドロップダウン リストでの複数選択
まず、ステーショナリーに基づいてドロップダウン リストを作成する必要があります。早速作成してみましょう。ドロップダウン リストの作成に関する記事をぜひご覧ください。
データ検証 ダイアログ ボックスで LIST を選択します
B4:B11 ステーショナリー要素を保持する範囲です。ドロップダウン リストが表示されます。
続きを読む: 選択に応じた Excel ドロップダウン リスト
1.複数の項目を選択 (重複選択を許可)
従来のドロップダウン リストでは、常に 1 つの項目が選択されます。ご覧のとおり、ペン が選択されています。 リストから (下の画像)。
ここで、別のアイテムを選択する場合は、鉛筆としましょう
その後、以前の値を置き換えます。 鉛筆のみ 選択されたままになります。
複数のアイテムを選択するには、VBA を使用する必要があります コード。 Microsoft Visual Basic for Applications を開きます。 ウィンドウ (ALT + F11 を押します) 開く必要があります)。
ドロップダウン リスト内の複数の項目を選択するワークシート名または番号をダブルクリックします。その特定のシートのコード ウィンドウが表示されます。
これは、Sheet2 のコード ウィンドウです。 ワークブックに入力します (このシートにはドロップダウン リストがあります)。
コード ウィンドウが開いたら、そこに次のコードを挿入します
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Oldvalue As String
Dim Newvalue As String
On Error GoTo Exitsub
If Target.Address = "$D$4" Then
If Target.SpecialCells(xlCellTypeAllValidation) Is Nothing Then
GoTo Exitsub
Else: If Target.Value = "" Then GoTo Exitsub Else
Application.EnableEvents = False
Newvalue = Target.Value
Application.Undo
Oldvalue = Target.Value
If Oldvalue = "" Then
Target.Value = Newvalue
Else
Target.Value = Oldvalue & ", " & Newvalue
End If
End If
End If
Application.EnableEvents = True
Exitsub:
Application.EnableEvents = True
End Sub
コードを保存し、ドロップダウン リストで値を選択してみてください。
鉛筆を選択した 、別のアイテム Notebook を選択します .ご覧のとおり、両方のアイテムが見つかりました (下の画像)。
このコードにより、選択を繰り返すことができます。たとえば、Pencil を選択したとします。 もう一度、
選択ボックスにアイテムが再び表示されます。
コードの説明
2 つの文字列 Oldvalue を宣言しました と新しい価値 .
D4 でドロップダウン リストを作成したことがわかります。 セルです。これが、ターゲット アドレスが D4 である理由です。 .さらに、Target.SpecialCells を使用して、セルがデータ検証を使用しているかどうかを再確認しました。 .
値を選択したら、イベントをオフにしました (Application.EnableEvents = False
) そのため、変更によってイベントが再度トリガーされることはありません。次に、選択したアイテムを Newvalue に保存しました .
変更を取り消した後、値を Oldvalue に設定しました .次に、Oldvalue 空かどうか。空の場合 (1 つの値のみが選択されていることを意味します)、Newvalue を返します .それ以外の場合は、Oldvalue を連結します と新しい価値 .
必要に応じて変更できるように、イベントを終了する前にリセットしてください。
続きを読む: 複数依存ドロップダウン リスト Excel VBA
2.ドロップダウン リストから複数の項目を選択 (一意の選択のみ)
前のセクションでは、繰り返しが許可されている複数の選択を見てきました。そうしたくない場合は、このセクションに従ってください。
便宜上、このデモンストレーションには別のシートを使用しました。今回はSheet3です。このシートのコード ウィンドウに次のコードを記述します。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Oldvalue As String
Dim Newvalue As String
Application.EnableEvents = True
On Error GoTo Exitsub
If Target.Address = "$D$4" Then
If Target.SpecialCells(xlCellTypeAllValidation) Is Nothing Then
GoTo Exitsub
Else: If Target.Value = "" Then GoTo Exitsub Else
Application.EnableEvents = False
Newvalue = Target.Value
Application.Undo
Oldvalue = Target.Value
If Oldvalue = "" Then
Target.Value = Newvalue
Else
If InStr(1, Oldvalue, Newvalue) = 0 Then
Target.Value = Oldvalue & ", " & Newvalue
Else:
Target.Value = Oldvalue
End If
End If
End If
End If
Application.EnableEvents = True
Exitsub:
Application.EnableEvents = True
End Sub
以前のコードと比べて違いはありますか!よく見ると、わずかな違いに気付くでしょう。
ここでは VBA を使用しています INSTR という関数 . INSTR 関数は、文字列内で部分文字列が最初に出現する位置を返します。詳細については、この INSTR の記事をご覧ください。
InStr(1, Oldvalue, Newvalue) =0 でこの論理演算を使用して、値が見つかったかどうかを確認しました。論理演算が TRUE を返す場合 (以前に見つからなかった) 次に、アイテムを選択し、以前の値と連結することができます。
コードを保存して、既に選択されている項目を選択してみてください。
ここではすでに Pencil を選択しています 、それをもう一度選択したい場合は、できません。重複する値は許可されません。
続きを読む: Excel で別のシートからドロップダウン リストを作成する方法
3.改行で項目を選択
これまでのところ、項目がカンマで区切られていることがわかりました。このセクションでは、選択した項目を改行で並べます。
簡単にするために、いくつかのセルを D4 とマージします 細胞。これを行うには、結合するセルを選択し、[結合して中央揃え] をクリックします。 同盟から ホームのセクション タブ
セルの高さが高くなります。
それでは、改行で項目を区切るコードを見てみましょう。次のコードを使用してください
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Oldvalue As String
Dim Newvalue As String
Application.EnableEvents = True
On Error GoTo Exitsub
If Target.Address = "$D$4" Then
If Target.SpecialCells(xlCellTypeAllValidation) Is Nothing Then
GoTo Exitsub
Else: If Target.Value = "" Then GoTo Exitsub Else
Application.EnableEvents = False
Newvalue = Target.Value
Application.Undo
Oldvalue = Target.Value
If Oldvalue = "" Then
Target.Value = Newvalue
Else
If InStr(1, Oldvalue, Newvalue) = 0 Then
Target.Value = Oldvalue & vbNewLine & Newvalue
Else:
Target.Value = Oldvalue
End If
End If
End If
End If
Application.EnableEvents = True
Exitsub:
Application.EnableEvents = True
End Sub
前のコードとの唯一の違いは、今回は vbNewLine を使用したことです OldValue の間 および NewValue .
vbNewLine アイテム間に新しい行を提供します。
アイテムを選択してください。
アイテムを選択します ペン それが上の画像に表示されています。別の要素を選択してください。
2 つの項目が別の行にあることがわかります。
ここには、2 つの異なる行にある 2 つの値があります。別の値を選択すると、それが別の行に追加されます。すべての値は改行されます。
別の区切り文字で項目を区切る場合は、vbNewline の代わりに二重引用符で囲んでください。 .
結論
それが今日のすべてです。ドロップダウン リストに複数の選択を行うためのいくつかの方法をリストしました。これが役立つことを願っています。分かりにくいところがあれば遠慮なくコメントください。ここで見逃した他の方法をお知らせください。
参考文献
- Excel で複数列のドロップダウン リストを作成する方法 (3 つの方法)
- セルの値を Excel のドロップダウン リストにリンクする (5 つの方法)
- Excel の条件付きドロップダウン リスト (作成、並べ替え、使用)
- Excel で動的依存ドロップダウン リストを作成する
- IF ステートメントを使用して Excel でドロップダウン リストを作成する方法
- Excel のドロップダウン リスト付き VLOOKUP
-
Excel で複数のセルをハイパーリンクする方法 (3 つの方法)
Microsoft Excel で 、ハイパーリンク 特定の Web ページへのリンクとして使用されます。 Excel などの別のファイルをリンクする便利なツールにもなります。 シート、またはセル。 ハイパーリンク をクリックする Excel の別の場所に簡単にジャンプできます .この記事では、Excel で複数のセルをハイパーリンクする方法について説明します。 .理解を深めるために、Excel を含むサンプル データセットを使用します。 に関連する トピック とウェブ アドレス . Excel で複数のセルをハイパーリンクする 3 つの方法 この投稿では、 ハイパーリンク を使用
-
Excel リストからメールを送信する方法 (2 つの効果的な方法)
大規模なグループに大量のメールを送信する必要がある場合は、繰り返しのタスクをすばやく処理できる自動化されたプロセスが必要になります。 Excel の作成 電子メールのリストを含むファイルは、大量の電子メールを送信する最も一般的な方法です。このチュートリアルでは、 Excel からメールを送信する方法を紹介します。 多数の人に自動的にリストします。 Excel リストからメールを送信するための 2 つの便利な方法 下の画像には、一部の人の名前、電子メール、登録番号を含むデータ セットが含まれています。 Excel から リスト、各個人に電子メールを送信する必要があります。これを実現するに