Excel の VBA を使用したドロップダウン リストの一意の値 (完全ガイド)
この記事では、ドロップダウン リストから重複した値を削除する方法を紹介します VBA を使用した Excel のワークシートの 一意の値のみを保持します。少なくとも 1 回と 1 回だけ出現する一意の値を抽出する方法を学習します。
Excel VBA (クイック ビュー) を使用したドロップダウン リストの一意の値
Sub Drop_Down_List_Unique_Values_At_Least_Once()
List_Location = "B3"
Data = Range(List_Location).Validation.Formula1
Data = Split(Data, ",")
Range(List_Location).Validation.Delete
Unique_Data = ""
Count = 0
For i = LBound(Data) To UBound(Data)
Unique_Values = Split(Unique_Data, ",")
For j = LBound(Unique_Values) To UBound(Unique_Values)
If Data(i) = Unique_Values(j) Then
Count = 1
Exit For
End If
Next j
If Count = 0 Then
If Unique_Data = "" Then
Unique_Data = Unique_Data + Data(i)
Else
Unique_Data = Unique_Data + "," + Data(i)
End If
End If
Count = 0
Next i
Range(List_Location).Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
Formula1:=Unique_Data
End Sub
Excel VBA でドロップダウン リストに一意の値を保持する方法
ここでは、セル B3 にドロップダウン リストがあります。 いくつかの国の名前を含む Excel ワークシートの。
しかし、ご覧のとおり、リストでは一部の名前が繰り返されています。ドイツが 3 回繰り返され、イタリアが 2 回繰り返されたように。
今日の目的は、重複する値をドロップダウン リストから削除し、一意の値のみを保持することです。
1.少なくとも 1 回表示されるドロップダウン リストに一意の値を保持するマクロの開発
まず、マクロを作成します ドロップダウン リストに少なくとも 1 回表示される一意の値を保持します。
たとえば、上記のリストの場合、マクロの出力は ドイツ、イタリア、フランス、イギリス .
VBA この目的のためのコードは次のとおりです:
⧭ VBA コード:
Sub Drop_Down_List_Unique_Values_At_Least_Once()
List_Location = "B3"
Data = Range(List_Location).Validation.Formula1
Data = Split(Data, ",")
Range(List_Location).Validation.Delete
Unique_Data = ""
Count = 0
For i = LBound(Data) To UBound(Data)
Unique_Values = Split(Unique_Data, ",")
For j = LBound(Unique_Values) To UBound(Unique_Values)
If Data(i) = Unique_Values(j) Then
Count = 1
Exit For
End If
Next j
If Count = 0 Then
If Unique_Data = "" Then
Unique_Data = Unique_Data + Data(i)
Else
Unique_Data = Unique_Data + "," + Data(i)
End If
End If
Count = 0
Next i
Range(List_Location).Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
Formula1:=Unique_Data
End Sub
⧭ 出力:
コードを実行します。セル B3 のドロップダウン リストから重複した値を削除します
⧭ 注:
コードを実行する前に、ドロップダウン リストでワークシートをアクティブにすることを忘れないでください。また、コードを実行する前に、必要に応じてリストの場所のセル参照を変更してください。
続きを読む: Excel で一意の値を持つドロップダウン リストを作成する方法 (4 つの方法)
2. 1 回だけ表示されるドロップダウン リストに一意の値を保持するマクロの作成
今回はマクロを開発します ドロップダウン リストに 1 回だけ表示される一意の値を保持します。
たとえば、上記のリストの場合、マクロの出力は フランス、イギリスになります .
VBA この目的のためのコードは次のとおりです:
⧭ VBA コード:
Sub Drop_Down_List_Unique_Values_Exactly_Once()
List_Location = "B3"
Data = Range(List_Location).Validation.Formula1
Data = Split(Data, ",")
Unique_Data = ""
Range(List_Location).Validation.Delete
Count = 0
For i = LBound(Data) To UBound(Data)
For j = LBound(Data) To UBound(Data)
If j <> i And Data(i) = Data(j) Then
Count = 1
Exit For
End If
Next j
If Count = 0 Then
If Unique_Data = "" Then
Unique_Data = Unique_Data + Data(i)
Else
Unique_Data = Unique_Data + "," + Data(i)
End If
End If
Count = 0
Next i
Range(List_Location).Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
Formula1:=Unique_Data
End Sub
⧭ 出力:
コードを実行します。セル B3 のドロップダウン リストから重複する値を削除します
⧭ 注:
コードを実行する前に、ドロップダウン リストでワークシートをアクティブにすることを忘れないでください。また、コードを実行する前に、必要に応じてリストの場所のセル参照を変更してください。
関連コンテンツ: Excel でドロップダウン リストから複数選択する方法 (3 つの方法)
類似の読み方:
- Excel での選択に基づいてデータを抽出するためのドロップダウン フィルタの作成
- 色付きの Excel ドロップダウン リストを作成する方法 (2 つの方法)
- Excel ドロップダウン リストが機能しない (8 つの問題と解決策)
- Excel の自動更新ドロップダウン リスト (3 つの方法)
- Excel のドロップダウン リストから値を選択する VBA (2 つの方法)
3.ドロップダウン リストに一意の値を入力するユーザー フォームの開発
最後に、UserForm を作成します ドロップダウン リストから重複する値を削除し、VBA で一意の値のみを保持するには .
⧪ ステップ 1:ユーザーフォームを開く
[挿入]> [ユーザー フォーム] に移動します VBA のオプション 新しい UserForm を開くエディタ .新しいユーザーフォーム UserForm1 と呼ばれる
⧪ ステップ 2:ツールを UserForm にドラッグする
UserForm 以外に 、ツールボックスを取得します . ツールボックスの上にカーソルを移動します 3 つのラベルをドラッグします および 2 つのリスト ボックス (Label1 の下 と Label3 ) と 1 テキスト ボックス (Label2 の下 ) 図に示す方法で。
最後に、 コマンド ボタン をドラッグします。
⧪ ステップ 3:ListBox1 のコードを書く
ListBox1 をダブルクリックします . プライベート サブプロシージャ ListBox1_Click と呼ばれる 開くでしょう。そこに次のコードを入力してください。
Private Sub ListBox1_Click()
For i = 0 To UserForm1.ListBox1.ListCount - 1
If UserForm1.ListBox1.Selected(i) = True Then
Worksheets(UserForm1.ListBox1.List(i)).Activate
Exit For
End If
Next i
End Sub
⧪ ステップ 4:TextBox1 のコードを書く
次に TextBox1 をダブルクリックします .別のプライベート サブプロシージャ TextBox1_Change と呼ばれる 開くでしょう。そこに次のコードを入力してください。
Private Sub TextBox1_Change()
On Error GoTo TB1:
ActiveSheet.Range(UserForm1.TextBox1.Text).Select
Exit Sub
TB1:
x = 21
End Sub
⧪ ステップ 6:CommandButton1 のコードを記述する
最後に、CommandButton1 をダブルクリックします . プライベート サブプロシージャ CommandButton1_Click と呼ばれる 開くでしょう。そこに次のコードを入力してください。
Private Sub CommandButton1_Click()
List_Location = UserForm1.TextBox1.Text
Data = Range(List_Location).Validation.Formula1
Data = Split(Data, ",")
Range(List_Location).Validation.Delete
Unique_Data = ""
Count = 0
If UserForm1.ListBox2.Selected(0) = True Then
For i = LBound(Data) To UBound(Data)
Unique_Values = Split(Unique_Data, ",")
For j = LBound(Unique_Values) To UBound(Unique_Values)
If Data(i) = Unique_Values(j) Then
Count = 1
Exit For
End If
Next j
If Count = 0 Then
If Unique_Data = "" Then
Unique_Data = Unique_Data + Data(i)
Else
Unique_Data = Unique_Data + "," + Data(i)
End If
End If
Count = 0
Next i
ElseIf UserForm1.ListBox2.Selected(1) = True Then
For i = LBound(Data) To UBound(Data)
For j = LBound(Data) To UBound(Data)
If j <> i And Data(i) = Data(j) Then
Count = 1
Exit For
End If
Next j
If Count = 0 Then
If Unique_Data = "" Then
Unique_Data = Unique_Data + Data(i)
Else
Unique_Data = Unique_Data + "," + Data(i)
End If
End If
Count = 0
Next i
Else
MsgBox "Select Either At Least Once or Exactly Once.", vbExclamation
End If
Range(List_Location).Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
Formula1:=Unique_Data
End Sub
⧪ ステップ 7:UserForm を実行するためのコードを記述する
新しいモジュールを挿入 VBA ツールバーから そこに次のコードを挿入します。
Sub Run_UserForm()
UserForm1.Caption = "Keep Unique Values in Drop-Down List"
UserForm1.Label1.Caption = "Worksheet: "
UserForm1.Label2.Caption = "List Location: "
UserForm1.Label3.Caption = "Keep Unique Values that Appear: "
UserForm1.ListBox1.BorderStyle = fmBorderStyleSingle
UserForm1.ListBox1.ListStyle = fmListStyleOption
For i = 1 To Sheets.Count
UserForm1.ListBox1.AddItem Sheets(i).Name
Next i
For i = 0 To UserForm1.ListBox1.ListCount - 1
If UserForm1.ListBox1.List(i) = ActiveSheet.Name Then
UserForm1.ListBox1.Selected(i) = True
Exit For
End If
Next i
UserForm1.ListBox2.BorderStyle = fmBorderStyleSingle
UserForm1.ListBox2.ListStyle = fmListStyleOption
UserForm1.ListBox2.AddItem "At Least Once"
UserForm1.ListBox2.AddItem "Exactly Once"
UserForm1.CommandButton1.Caption = "OK"
Load UserForm1
UserForm1.Show
End Sub
⧪ ステップ 8:UserForm の実行 (最終出力)
あなたのユーザーフォーム すぐに使用できます。 マクロを実行します Run_UserForm と呼ばれる .
ユーザーフォーム ワークシートに読み込まれます。
ドロップダウン リストがあるワークシートを選択します。これが Sheet3 です .
次に、ワークシート上のリストの場所のセル参照を入力します。こちらが B3 です .
最後に、少なくとも 1 回のいずれかを選択します または 1 回だけ。 ここでは [少なくとも 1 回] を選択しました .
だから私のユーザーフォーム 次のようになります:
[OK] をクリックします .選択した基準に従って、入力場所のドロップダウン リストから重複した値が削除されます。
続きを読む: Excel で数式に基づいてドロップダウン リストを作成する方法 (4 つの方法)
覚えておくべきこと
- この記事では、ドロップダウン リストからのみ重複した値を削除することに焦点を当てました。ドロップダウン リストの作成方法や重複リストの値の並べ替え方法については、この記事をご覧ください。
結論
これらは、Excel VBA を使用してドロップダウン リストから重複した値を削除し、固有の値のみを保持する方法です。 .何か質問がありますか?お気軽にお問い合わせください。私たちのサイト ExcelDemy にアクセスすることを忘れないでください より多くの投稿と更新情報をご覧ください。
関連記事
- Excel でセルの値をドロップダウン リストにリンクする方法 (5 つの方法)
- Excel の条件付きドロップダウン リスト (作成、並べ替え、使用)
- Excel で動的依存ドロップダウン リストを作成する方法
- IF ステートメントを使用して Excel でドロップダウン リストを作成する方法
- Excel のドロップダウン リスト付き VLOOKUP
-
Excelで複数の単語を含む依存ドロップダウンリストを作成する方法
Microsoft Excel で作業中 、場合によってはデータ入力フォームや Excel を作成する必要があります ダッシュボード。データ入力フォームを開発する場合、ドロップダウン リストは Excel の非常に便利な機能です。セル内の項目のリストがドロップダウン メニューとして表示され、ユーザーはそこから選択できます。一連のセルに頻繁に入力する必要があるリストがある場合、これは有益です。この記事では、複数の単語を含む Excel 依存のドロップダウン リストを作成する手順を示します。また、これらのリストをクリアまたはリセットする方法も示します。 ワークブックをダウンロードして練習できま
-
Excel でドロップダウン リスト付きのデータ入力フォームを作成する方法 (2 つの方法)
Microsoft Excel では、データ入力、電卓などのさまざまなフォームを作成できます。これらのタイプのフォームは、データを簡単に入力するのに役立ちます。また、多くの時間を節約できます。 Excel のもう 1 つの便利な機能は、ドロップダウン リストです。限られた値を何度も入力すると、プロセスが多忙になる可能性があります。ただし、ドロップダウン リストでは 、値を簡単に選択できます。今日、この記事では、データ入力の方法を学びます Excel のドロップダウン リストを含むフォーム 適切なイラストで効果的に。 Excel でドロップダウン リスト付きのデータ入力フォームを作成する 2 つ