Excel のドロップダウン リストから値を選択する VBA (2 つの方法)
ドロップダウン リストは、さまざまな Excel 関連のタスクを実行するための非常に便利な機能です。 VBA の実装 は、Excel で操作を実行するための最も効果的、迅速、かつ安全な方法です。この記事では、ドロップダウン リストから値を選択するための 2 つの効果的な方法を紹介します。 VBA マクロを使用して Excel で .
ワークブックをダウンロード
ここから無料の練習用 Excel ワークブックをダウンロードできます。
Excel で汎用リストからドロップダウン リストを作成する
コーディング セクションに入る前に、ドロップダウン リストを作成するための非常に簡単な方法を学びましょう。 汎用リストから エクセルで。 作成したドロップダウン リストを後で利用できるように この記事の例として。
以下は、Excel ワークシートにある一般的なリストです。 反復値があります (例:アップル セル B7 そしてB9 ) に含まれています。
値で構成されるドロップダウン リストを作成する方法を見ていきます。 (例: ブドウ、オレンジ、リンゴ、マンゴー、リンゴ ) 一般的なリストから .
手順:
- まず、任意のセルをクリックします (セル D4 この例では) ドロップダウン リストを保存する場所
- 次に、[データ] タブをクリックします。 .
- その後、[データ検証] を選択します データ ツールから リボンのグループ。
- データ検証 ポップアップボックスが表示されます。そこから、
- リストを選択 許可で
- ソースで 条件、範囲をドラッグ (B5:B9 この場合) ドロップダウン リストの値が含まれます。
- 後で、[OK] をクリックします .
次の画像を見てください。
セル D4 、ドロップダウン リストが作成されています 値を保持する (例: ブドウ、オレンジ、リンゴ、マンゴー、リンゴ ) 汎用リストから取得 (範囲 B5:B9 ).
VBA を使用して Excel のドロップダウン リストから値を選択する 2 つの方法
このセクションでは、繰り返しの値と繰り返しのない値の両方を含む複数の値をドロップダウン リストから選択する方法を学習します。 VBA を使用した Excel .
1. Excel のドロップダウン リストから複数の値を選択するための VBA の埋め込み (値の繰り返し)
データセットには反復値があります。 値が double であるかどうかに関係なく、ドロップダウン リストですべての値を取得したい場合 、次に以下の手順に従ってください。
手順:
- 最初に Alt + F11 を押します キーボードで、またはタブ Developer -> Visual Basic に移動します Visual Basic Editor を開く .
- 次に、適切なシート名を右クリックします。 [コードを表示] を選択します 表示されたオプション リストから。
- 次に、コピー 次のコードと貼り付け それをコード ウィンドウに表示します。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ValueA As String
Dim ValueB 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
ValueB = Target.Value
Application.Undo
ValueA = Target.Value
If ValueA = "" Then
Target.Value = ValueB
Else
Target.Value = ValueA & ", " & ValueB
End If
End If
End If
Application.EnableEvents = True
Exitsub:
Application.EnableEvents = True
End Sub
- 走るな このコード、保存
- ワークシートに戻ります 興味を持っている。 作成したドロップダウン リストをクリックすると、 セル D4 で 、ドロップダウンから複数の値を選択できるようになりました (次の gif を見てください)。
上の gif からわかるように、特定の値を複数回選択することもできます このVBAで コード。このセクションで提供したマクロ コードにより、ドロップダウン リストですべての種類の値を選択できます。 .
VBA コードの説明
Dim ValueA As String
Dim ValueB As String
変数名の定義。
On Error GoTo Exitsub
エラーが発生した場合は、ラベル Exitsub に移動します .
If Target.Address = "$D$4" Then
If Target.SpecialCells(xlCellTypeAllValidation) Is Nothing Then
GoTo Exitsub
宛先をセル D4 に設定します データ検証が含まれています。データ検証を含むセルがない場合は、ラベル Exitsub に移動します .
Else: If Target.Value = "" Then GoTo Exitsub Else
宛先としてセルがない場合は、ラベル Exitsub に移動します .それ以外の場合は、次の行を実行してください。
Application.EnableEvents = False
アプリケーション イベントをオフにして Worksheet_Change マクロの起動を防ぐことができます。そうしないと、潜在的な無限ループが発生する可能性があります。
ValueB = Target.Value
ValueB の定義 変更されたセルの新しい値になります。
Application.Undo
変更されたセルを元に戻す。
ValueA = Target.Value
変更を元に戻すことで、ValueA を定義できるようになりました 変更されたセルの古い値になります。
If ValueA = "" Then
Target.Value = ValueB
古い値が空白の場合は、新しい値を保存先として保存してください。
Else
Target.Value = ValueA & ", " & ValueB
End If
End If
End If
それ以外の場合は、コンマ (,) で連結して、古い値と新しい値の両方を宛先値に設定します。 )。すべての If を閉じる
Application.EnableEvents = True
Exitsub:
Application.EnableEvents = True
アプリケーション イベントをオンに戻します。
続きを読む: Excel で複数選択可能なドロップダウン リストを作成する方法
類似の読み方:
- Excel で別のシートからドロップダウン リストを作成する方法 (2 つの方法)
- Excel で検索可能なドロップダウン リストを作成する (2 つの方法)
- Excel ドロップダウン リストが機能しない (8 つの問題と解決策)
- テーブルから Excel ドロップダウン リストを作成する (5 つの例)
- Excel の自動更新ドロップダウン リスト (3 つの方法)
2.ドロップダウン リストから複数の値を選択するための VBA マクロの適用 (反復値なし)
データセットには反復値があります。ドロップダウン リストで繰り返し値を除くすべての値を取得する場合 、次に以下の手順に従ってください。
手順:
- 前に示したように、Visual Basic Editor を開きます 開発者から タブ
- 次に、コード ウィンドウに移動します コードを表示から 右クリックで表示されるオプション ワークシート
- 次に、コピー 次のコードと貼り付け 指定されたワークシートのコード ウィンドウに表示されます。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ValueA As String
Dim ValueB 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
ValueB = Target.Value
Application.Undo
ValueA = Target.Value
If ValueA = "" Then
Target.Value = ValueB
Else
If InStr(1, ValueA, ValueB) = 0 Then
Target.Value = ValueA & ", " & ValueB
Else:
Target.Value = ValueA
End If
End If
End If
End If
Application.EnableEvents = True
Exitsub:
Application.EnableEvents = True
End Sub
- 走るな このコード、保存
- ワークシートに戻ります 興味を持っている。 作成したドロップダウン リストをクリックすると、 セル D4 で 、ドロップダウンから複数の値を選択できるようになりました (次の gif を見てください)。
上の gif からわかるように、特定の値を複数回選択することはできません。 このVBAで コード。このセクションで提供したマクロ コードを使用すると、ドロップダウン リストで繰り返し値を使用せずに値を選択することができます。 .
VBA コードの説明
Dim ValueA As String
Dim ValueB As String
変数名の定義。
Application.EnableEvents = True
アプリケーション イベントをオンに戻します。
On Error GoTo Exitsub
エラーが発生した場合は、ラベル Exitsub に移動します .
If Target.Address = "$D$4" Then
If Target.SpecialCells(xlCellTypeAllValidation) Is Nothing Then
GoTo Exitsub
宛先をセル D4 に設定します データ検証が含まれています。データ検証を含むセルがない場合は、ラベル Exitsub に移動します .
Else: If Target.Value = "" Then GoTo Exitsub Else
宛先としてセルがない場合は、ラベル Exitsub に移動します .それ以外の場合は、次の行を実行してください。
Application.EnableEvents = False
アプリケーション イベントをオフにして Worksheet_Change 潜在的な無限ループを引き起こす可能性のあるマクロの起動を防ぐことができます。
ValueB = Target.Value
ValueB の定義 変更されたセルの新しい値になります。
Application.Undo
変更されたセルを元に戻す。
ValueA = Target.Value
変更を元に戻すことで、ValueA を定義できるようになりました 変更されたセルの古い値になります。
If ValueA = "" Then
Target.Value = ValueB
古い値が空白の場合は、新しい値を保存先として保存してください。
Else
If InStr(1, ValueA, ValueB) = 0 Then
Target.Value = ValueA & ", " & ValueB
InStr 関数 文字列内で部分文字列が最初に出現する位置を返します。出力が 0 の場合 次に、コンマ (,) で連結して、古い値と新しい値の両方を宛先値に設定します。 ).
Else: Target.Value = ValueA
End If
End If
End If
End If
それ以外の場合は、古い値を宛先として設定します。すべての If を閉じる
Application.EnableEvents = True
Exitsub:
Application.EnableEvents = True
アプリケーション イベントをオンに戻します。
続きを読む: 選択に応じた Excel ドロップダウン リスト
結論
結論として、この記事では、ドロップダウン リストから値を選択する方法に関する 2 つの効果的な方法を紹介しました。 VBA マクロを使用して Excel で .この記事があなたにとって非常に有益であることを願っています。このトピックに関する質問はお気軽にどうぞ。
関連記事
- Excel で数式に基づいてドロップダウン リストを作成する方法 (4 つの方法)
- Excel の条件付きドロップダウン リスト (作成、並べ替え、使用)
- IF ステートメントを使用して Excel でドロップダウン リストを作成する方法
- セルの値を Excel のドロップダウン リストにリンクする (5 つの方法)
- Excel でドロップダウン リストを削除する方法
-
Excelでセル値に基づいてドロップダウンリストを変更する方法(2つの方法)
特定の値に基づいて特定のデータを抽出するには、ドロップダウン リストを使用する必要がある場合があります。さらに、2 つ以上の従属ドロップダウン リストを関連付ける必要があります。 .この記事では、Excel でセルの値に基づいてドロップダウン リストを変更する方法を紹介します。 Excel でセル値に基づいてドロップダウン リストを変更する 2 つの適切な方法 以下のセクションでは、 2 を強調します。 ドロップダウン リストを変更する最適な方法。 まず 、 OFFSET を適用します と マッチ ドロップダウン リストの関数を使用して、セルの値に基づいて変更を行います。 さらに 、 X
-
Excel でドロップダウン リスト付きのデータ入力フォームを作成する方法 (2 つの方法)
Microsoft Excel では、データ入力、電卓などのさまざまなフォームを作成できます。これらのタイプのフォームは、データを簡単に入力するのに役立ちます。また、多くの時間を節約できます。 Excel のもう 1 つの便利な機能は、ドロップダウン リストです。限られた値を何度も入力すると、プロセスが多忙になる可能性があります。ただし、ドロップダウン リストでは 、値を簡単に選択できます。今日、この記事では、データ入力の方法を学びます Excel のドロップダウン リストを含むフォーム 適切なイラストで効果的に。 Excel でドロップダウン リスト付きのデータ入力フォームを作成する 2 つ