メインコンテンツへスキップ

Kutools for Office — 1つのスイート、5つのツールで、もっと多くのことを成し遂げましょう。

Excelでドロップダウンリストを自動更新するにはどうすればよいですか?

Author Sun Last modified

doc-auto-update-dropdown-list-1

ドロップダウンリストは、データ入力を標準化し、特に日々のレポート作成、在庫選択、データ分類タスクなどで効率を高めるためにExcelで頻繁に使用されます。しかし、多くのユーザーがよく遭遇する制限があります。元のソース範囲のすぐ下に新しい項目を追加しても、その追加分がドロップダウンリストに自動的に含まれないという問題です。デフォルトでは、Excelは最初に指定された範囲のみを認識するため、その範囲外の新しいエントリはデフォルトではドロップダウンに表示されません。これを解決するために、Excelは新しいデータを追加すると自動的に拡張される動的なドロップダウンリストを作成するいくつかの方法を提供しています。

このガイドでは、特に定期的に増加するテーブルやリストにおいて、メンテナンスの手間や潜在的な入力ミスを削減するのに役立つ、Excelで自動更新されるドロップダウンリストを実装するための実用的な方法を紹介します。


arrow blue right bubble 数式を使用してドロップダウンリストを自動更新

ドロップダウンリストを自動的に更新する必要があるシナリオがいくつかあります。例えば、製品リストの管理、登録フォームでのメンバーの管理、または定期的に変更されるプロジェクトタスクの追跡などです。この方法では、OFFSET関数を利用して動的な範囲を作成することで、列に新しいエントリを追加したときにドロップダウンリストが自動的にすべての項目を含むようにします。

1. ドロップダウンリストを挿入したいセルを選択し、次に「データ」「データの入力規則」「データの入力規則」に移動します。スクリーンショットをご覧ください:

Data Validation button on the Data tab on the ribbon

2. データの入力規則 ダイアログで、「設定」タブに移動し、「 リスト 」を 許可 オプションから選択し、次の動的範囲の数式を「元の値」ボックスに入力します:
=OFFSET($A$2,0,0,COUNTA(A:A)-1)

Data Validation dialog

パラメータの説明と実用的なヒント:

  • A2は対象データ範囲の最初のセルです。これは実際のリストの開始セルに合わせて調整してください。
  • A:Aはリストデータを含む列全体を指します。このセットアップにより、この列にさらに項目を追加すると、関数が範囲サイズを動的に再計算します。
  • 列内に空白セルや小見出しを使用している場合、ドロップダウンに空白の項目が表示されないように、数式を調整するか、データ配置の一貫性を確保する必要があります。
  • 大規模なデータセットの場合、OFFSETのような揮発性関数は、変更ごとに再計算されるため、若干パフォーマンスに影響を与える可能性があることに注意してください。

3. 「OK」をクリックします。これで、元の列に新しいデータが入力されると更新されるドロップダウンリストが作成されました。予想範囲内でさらに項目を追加すると、それらは即座にドロップダウンリスト内の選択可能な値として表示されます。

Original list      Updated list

トラブルシューティングとヒント:

  • ドロップダウンに予期しない空白のエントリが表示される場合は、ソース列に余分なスペースや非表示の行がないか確認してください。
  • 数式がエラーを返す場合は、データに不連続な範囲や完全に空白の列が含まれていないか確認してください。
  • リストが2行目以外から始まる場合は、ソース数式を拡張することを忘れないでください。セル参照とCOUNTA(A:A)を適切に修正してください。

arrow blue right bubble ドロップダウンリストのソースとしてテーブルを使用(新しい項目で自動拡張)

ドロップダウンリストのソース範囲としてExcelテーブルを使用することは、効率的で初心者にも優しい方法です。Excelテーブルは新しい項目が追加されると自動的に拡張されるため、範囲参照や数式を手動で調整する必要なく、ドロップダウンリストが最新の状態に保たれます。

この方法は、従業員名簿、在庫、イベント申込書など、頻繁に増加または変更されるリストを管理するユーザーに特に適しています。主な利点は、最新のリストを維持するためのシンプルさと信頼性ですが、テーブルはデータ検証でクロスワークブックの参照をサポートしていないため、このアプローチはソースデータが同じシートまたはワークブック上にある場合に最適です。

1. ソースデータ範囲(例:A2:A6)を選択します。

2. 「挿入」タブに移動し、「テーブル」を選択します。リストにヘッダーが含まれている場合は、「私のテーブルにはヘッダーがあります」のチェックボックスをオンにしてください。

3. Excelは範囲をテーブルとしてフォーマットします。デフォルトでは、Table1という名前が付けられる場合があります(テーブル名は「テーブルデザイン」タブの左側にある「テーブル名」ボックスで確認または変更できます)。

4. ドロップダウンリストが必要なセルをクリックし、データデータの入力規則に移動します。

5. 「許可」ドロップダウンから「リスト」オプションを選択し、「元の値」ボックスにテーブル列への参照を入力します。例えば:

=INDIRECT("Table1[Column1]")
置き換えます: Table1 実際のテーブル名に、「Column1」を Column1 テーブルのヘッダーに置き換えます。

6. 「OK」をクリックします。これで、テーブルの下に新しいデータを追加するたびに、列とドロップダウンリストが自動的に更新され、新しいエントリが含まれるようになります。

注意とヒント:

  • Excelテーブルは、データの変更に応じて拡大縮小する構造化された範囲を提供するため、頻繁に変更が予想されるリストに最適です。
  • 別のシートでドロップダウンリストを参照する必要がある場合は、 =INDIRECT("Table1[Column1]") を使用してください。一部のExcelバージョンでは、データ検証で直接的なテーブル参照が現在のシートに限定される場合があります。
  • このアプローチでは、リストに空白のエントリが含まれていない場合、ドロップダウンに空白の値が表示されません。

arrow blue right bubble VBAを使用してドロップダウンのソース範囲を自動更新

長いリストを扱う場合や、ワークブックのメンテナンスタスクを自動化する場合など、高度で自動化されたシナリオでは、VBAコードを使用して新しいデータが追加されるたびにドロップダウンリストで使用される範囲を自動的に更新できます。これは、複数のドロップダウンが進化するソースリストを反映する必要がある複雑なソリューションや、複数のユーザー向けにドロップダウンを管理する場合に便利です。

1. Alt+F11を押してVBAエディターを開き、VBAProjectでデータ検証があるワークシートをダブルクリックします。

2. 次のコードをモジュールにコピー&ペーストします。

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim sourceColumn As Range
    Dim validationCell As Range
    Dim lastRow As Long
    Set sourceColumn = Me.Range("A:A") ' Change to your source column
    If Not Intersect(Target, sourceColumn) Is Nothing Then
        Application.EnableEvents = False
        lastRow = Me.Cells(Me.Rows.Count, sourceColumn.Column).End(xlUp).Row
        Set validationCell = Me.Range("D1:D100") ' Change to your validation cell  
        With validationCell.Validation
            .Delete
            .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, _
                 Formula1:="=$A$1:$A$" & lastRow
        End With
        
        Application.EnableEvents = True
    End If
End Sub

3. その後、コードウィンドウを閉じます。ソース範囲にデータを追加するたびに、ドロップダウンリストが自動的に更新されます。

コード内のパラメータを修正します:
  • ソース列("A:A" にデータが追加される場所)
  • 検証セル/範囲("D1:D100" にドロップダウンが存在する場所)
注意:
  • コードはワークシートに変更が加えられたときに自動的に実行されます。
  • 最終データ行を見つけ、それに応じて検証範囲を更新します。
  • これが動作するには、マクロを有効にする必要があります。
  • コードを保存するために、ファイルを .xlsm 形式で保存します。
  • a screenshot of kutools for excel ai

    Kutools AIでExcelの魔法を解き放つ

    • スマート実行: セル操作、データ分析、グラフ作成を簡単なコマンドで行います。
    • カスタム数式: ワークフローを合理化するための独自の数式を生成します。
    • VBAコーディング: 簡単にVBAコードを作成し実装します。
    • 数式の解釈: 複雑な数式を簡単に理解できます。
    • テキスト翻訳: スプレッドシート内の言語障壁を取り除きます。
    AI搭載ツールでExcelの機能を強化しましょう。今すぐダウンロードして、かつてないほどの効率を体験してください!

    関連記事:

    最高のオフィス業務効率化ツール

    🤖 Kutools AI Aide:データ分析を革新します。主な機能:Intelligent Executionコード生成カスタム数式の作成データの分析とグラフの生成Kutools Functionsの呼び出し……
    人気の機能重複の検索・ハイライト・重複をマーキング空白行を削除データを失わずに列またはセルを統合丸める……
    スーパーLOOKUP複数条件でのVLookup複数値でのVLookup複数シートの検索ファジーマッチ……
    高度なドロップダウンリストドロップダウンリストを素早く作成連動ドロップダウンリスト複数選択ドロップダウンリスト……
    列マネージャー指定した数の列を追加列の移動非表示列の表示/非表示の切替範囲&列の比較……
    注目の機能グリッドフォーカスデザインビュー強化された数式バーワークブック&ワークシートの管理オートテキスト ライブラリ日付ピッカーデータの統合セルの暗号化/復号化リストで電子メールを送信スーパーフィルター特殊フィルタ(太字/斜体/取り消し線などをフィルター)……
    トップ15ツールセット12 種類テキストツールテキストの追加特定の文字を削除など)50種類以上のグラフガントチャートなど)40種類以上の便利な数式誕生日に基づいて年齢を計算するなど)19 種類の挿入ツールQRコードの挿入パスから画像の挿入など)12 種類の変換ツール単語に変換する通貨変換など)7種の統合&分割ツール高度な行のマージセルの分割など)… その他多数
    Kutoolsはお好みの言語で利用可能 ― 英語、スペイン語、ドイツ語、フランス語、中国語、その他40以上の言語に対応!

    Kutools for ExcelでExcelスキルを強化し、これまでにない効率を体感しましょう。 Kutools for Excelは300以上の高度な機能で生産性向上と保存時間を実現します。最も必要な機能はこちらをクリック...


    Office TabでOfficeにタブインターフェースを追加し、作業をもっと簡単に

    • Word、Excel、PowerPointでタブによる編集・閲覧を実現
    • 新しいウィンドウを開かず、同じウィンドウの新しいタブで複数のドキュメントを開いたり作成できます。
    • 生産性が50%向上し、毎日のマウスクリック数を何百回も削減!

    全てのKutoolsアドインを一つのインストーラーで

    Kutools for Officeスイートは、Excel、Word、Outlook、PowerPoint用アドインとOffice Tab Proをまとめて提供。Officeアプリを横断して働くチームに最適です。

    Excel Word Outlook Tabs PowerPoint
    • オールインワンスイート — Excel、Word、Outlook、PowerPoint用アドインとOffice Tab Proが含まれます
    • 1つのインストーラー・1つのライセンス —— 数分でセットアップ完了(MSI対応)
    • 一括管理でより効率的 —— Officeアプリ間で快適な生産性を発揮
    • 30日間フル機能お試し —— 登録やクレジットカード不要
    • コストパフォーマンス最適 —— 個別購入よりお得