Excelのデータの入力規則ドロップダウンリストをオートコンプリートする2つの方法
Excelの「データの入力規則」は、セルに入力できる値を制御できる非常に便利な機能です。この機能を設定すると、ユーザーは自由な値を入力することができず、あらかじめ用意されたリストから選択する必要があります。本記事では、Excelのデータの入力規則ドロップダウンリストでオートコンプリート(入力候補の自動補完)を実現する方法を、2つのアプローチで詳しく解説します。
Excelで入力規則ドロップダウンリストをオートコンプリートする2つの方法
ここでは、データの入力規則ドロップダウンリストにオートコンプリート機能を追加する2つの方法を紹介します。以下のサンプルデータを使用して説明していきます。

方法1:VBAコードとコンボボックスコントロールでオートコンプリートを実現する
まずは、ActiveXコントロールのツールにカスタムVBAコードを組み合わせて、ドロップダウンリストからのデータ入力を自動補完する方法を見ていきましょう。
ステップ1:
- まず、リボンに「開発」タブを追加します。「ファイル」>「オプション」の順にクリックします。
- 「Excelのオプション」で「リボンのユーザー設定」を選択します。
- 「開発」にチェックを入れ、「OK」をクリックします。

ステップ2:
- 「開発」タブから「挿入」を選択します。
- 「ActiveXコントロール」の中から「コンボボックス」を選択します。

ステップ3:
- データ範囲上にコンボボックスを配置します。
- マウスを右クリックし、一覧から「プロパティ」を選択します。

ステップ4:
- 「プロパティ」ウィンドウで、オブジェクト名「Name」を「TempComboBox」に変更します。

ステップ5:
- シート見出し(シート名)を右クリックします。
- 一覧から「コードの表示」を選択します。

すると、VBAコードエディター(VBE)が開きます。ここにVBAコードを記述していきます。

ステップ6:
- 以下のVBAコードをコピーして、コードウィンドウに貼り付けてください。
Private Sub Wrksht_SelectionChange(ByVal Target As Range)
Dim combox_1 As OLEObject
Dim str_1 As String
Dim ws_1 As Worksheet
Dim arr_1
Set ws_1 = Application.ActiveSheet
On Error Resume Next
Set combox_1 = ws_1.OLEObjects("TempComboBox")
With combox_1
.ListFillRange = ""
.LinkedCell = ""
.Visible = False
End With
If Target.Validation.Type = 3 Then
Target.Validation.InCellDropdown = False
Cancel = True
str_1 = Target.Validation.Formula1
str_1 = Right(str_1, Len(str_1) - 1)
If str_1 = "" Then Exit Sub
With combox_1
.Visible = True
.Left = Target.Left
.Top = Target.Top
.Width = Target.Width + 5
.Height = Target.Height + 5
.ListFillRange = str_1
If .ListFillRange = "" Then
arr_1 = Split(str_1, ",")
Me.TempComboBox.List = arr_1
End If
.LinkedCell = Target.Address
End With
combox_1.Activate
Me.TempComboBox.DropDown
End If
End Sub
Private Sub TempComboBox_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
Select Case KeyCode
Case 9
Application.ActiveCell.Offset(0, 1).Activate
Case 13
Application.ActiveCell.Offset(1, 0).Activate
End Select
End Sub
ステップ7:
- VBAコードを保存したら、データシートに戻ります。「開発」タブから「デザインモード」をオフにします。

ステップ8:
- セルC5を選択します。
- 「データ」タブの「データツール」グループにある「データの入力規則」を選択します。

ステップ9:
- 「データの入力規則」ダイアログボックスが表示されます。「入力値の種類」で「リスト」を選択します。
- 「元の値」欄に参照したい値の範囲を指定します。
- 「OK」をクリックします。

ステップ10:
- 「選択」列の任意のセルをクリックし、頭文字となる1文字を入力してみましょう。

文字を入力すると、その文字に一致する候補がセル上に自動的に表示されます。
あとは、候補リストから目的の項目を選択しながら、すべてのセルを入力していきましょう。

関連記事: ExcelでVBAを使ったデータの入力規則ドロップダウンリスト(7つの活用例)
方法2:ActiveXコントロールのコンボボックスのみでオートコンプリートを実現する
次に、VBAコードを使わず、ActiveXコントロールのコンボボックスだけでも自動入力補完が実現できることを確認しましょう。
ステップ1:
- 「開発」タブの「挿入」グループを選択します。
- 「ActiveXコントロール」から「コンボボックス」を選択します。

ステップ2:
- コンボボックスをデータ範囲の任意の空白部分に配置します。
- 次に、マウスを右クリックします。
- 一覧から「プロパティ」を選択します。

ステップ3:
- 「LinkedCell(リンクするセル)」欄に「C5」と入力します。これにより、選択したデータがセルC5に表示されるようになります。
- 「ListFillRange」欄に「$B$5:$B$9」と入力します。
- 「MatchEntry」欄で「1-fmMatchEntryComplete」を選択し、変更を保存します。

ステップ4:
- 「開発」タブから「デザインモード」を無効にします。

ステップ5:
- コンボボックスに任意の文字を入力すると、入力候補が自動的に表示されます。確定すると、データがセルC5に反映されます。

関連記事: Excelでデータの入力規則用ドロップダウンリストを作成する方法(8つの方法)
まとめ
本記事では、Excelのドロップダウンリストによるデータの入力規則に、オートコンプリート機能を追加する方法を2通り解説しました。VBAコードを使う方法と、ActiveXコントロールだけで完結する方法のどちらも、日々の入力作業を大幅に効率化できます。ぜひ実際にお試しください。当サイトExceldemy.comにもぜひお立ち寄りいただき、コメント欄でご意見・ご感想をお聞かせください。
関連記事
- Excelでテーブルからデータの入力規則リストを作成する方法(3つの方法)
- Excelで複数選択可能なデータの入力規則ドロップダウンリストを作成する
- Excelの1つのセルに複数のデータの入力規則を適用する方法(3つの例)
- Excel VBAで入力規則リストに既定値を設定する(マクロとUserForm)
- 別のセルの値に基づいてExcelのデータの入力規則を設定する
- Excelで複数条件に対応するカスタムデータの入力規則を適用する(4つの例)
- Excelで英数字のみ入力を許可するデータの入力規則(カスタム数式を使用)
-
【Excel】テーブルからデータの入力規則リストを動的に作成する3つの方法
Excelのテーブルは、最下部に新しい要素を挿入すると自動的に拡張される動的な特性を持っています。この優れた機能があるため、テーブルはExcelユーザーのツールボックスの中でも最も有効な機能の一つとされています。データの入力規則(データバリデーション)リストを活用すれば、テーブルのデータに入力ミスや誤りが混入するのを防ぐことができます。ただし、テーブルに新しいデータを追加した際には、入力規則リスト側も更新が必要になる点に注意しましょう。本記事では、テーブルから動的なExcelデータ入力規則リストを作成する方法を詳しく解説します。 テーブルからデータの入力規則リストを作成する3つの効果的な方法
-
Excelでドロップダウンリスト付きのデータ入力フォームを作成する2つの方法
Microsoft Excelでは、データ入力フォームや計算フォームなど、さまざまな種類のフォームを作成できます。こうしたフォームを活用すれば、データ入力が格段に楽になり、作業時間の大幅な節約にもつながります。また、Excelには「ドロップダウンリスト」という便利な機能もあります。限られた値を何度も手入力するのは面倒ですが、ドロップダウンリストを使えば、リストから選ぶだけで簡単に値を入力できます。この記事では、Excelでドロップダウンリスト付きのデータ入力フォームを作成する方法を、具体的な操作画面とともにわかりやすく解説します。 Excelでドロップダウンリスト付きデータ入力フォームを