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

Excelで複数のワークシート間のドロップダウンリストを同期させるにはどうすればよいですか?

Author: Siluvia Last Modified: 2025-08-06

あるワークブック内の複数のワークシートに、まったく同じドロップダウン項目を持つドロップダウンリストがあるとします。ここで、1つのワークシートのドロップダウンリストから項目を選択すると、他のワークシートのドロップダウンリストが自動的に同じ選択に同期されるようにしたい場合があります。この記事では、この問題を解決するためのVBAコードを提供します。

VBAコードを使用して複数のワークシート間でドロップダウンリストを同期させる


VBAコードを使用して複数のワークシート間でドロップダウンリストを同期させる

例えば、ドロップダウンリストが「Sheet1」「Sheet2」...「Sheet5」という名前の5つのワークシートにある場合、Sheet1でのドロップダウン選択に基づいて他のワークシートのドロップダウンリストを同期させるには、次のVBAコードを適用してください。

1. Sheet1を開き、シートタブを右クリックし、右クリックメニューから「表示コード」を選択します。

A screenshot showing the right-click menu on Sheet1 to view the code in Excel

2. 「 Microsoft Visual Basic for Applications」ウィンドウで、以下のVBAコードを「Sheet1 (コード)」ウィンドウに貼り付けます。

A screenshot showing the Microsoft Visual Basic for Applications window where the VBA code is pasted in Excel

VBAコード: 複数のワークシートでドロップダウンリストを同期させる

Private Sub Worksheet_Change(ByVal Target As Range)
'Updated by Extendoffice 20220815
    Dim tSheet1 As Worksheet
    Dim tRange As Range
    Dim xRangeStr As String
    On Error Resume Next
    If Target.Count > 1 Then Exit Sub
    
    xRangeStr = "A2:A11"

    Set tRange = Intersect(Target, Range(xRangeStr))
    If Not tRange Is Nothing Then
        xRangeStr = tRange.Address
        Application.EnableEvents = False
        Set tSheet1 = ActiveWorkbook.Worksheets("Sheet2")
        tSheet1.Range(xRangeStr).Value = Target.Value
        Set tSheet1 = ActiveWorkbook.Worksheets("Sheet3")
        tSheet1.Range(xRangeStr).Value = Target.Value
        Set tSheet1 = ActiveWorkbook.Worksheets("Sheet4")
        tSheet1.Range(xRangeStr).Value = Target.Value
        Set tSheet1 = ActiveWorkbook.Worksheets("Sheet5")
        tSheet1.Range(xRangeStr).Value = Target.Value
        Application.EnableEvents = True
    End If
    
End Sub

注意:

1) コード内では、A2:A11はドロップダウンリストを含む範囲です。すべてのドロップダウンリストが異なるワークシートでも同じ範囲にあることを確認してください。
2) Sheet2、Sheet3、Sheet4、およびSheet5は、Sheet1のドロップダウンリストに基づいて同期させたいドロップダウンリストを含むワークシートです。
3) さらに多くのワークシートをコードに追加するには、「Application.EnableEvents = True」の行の前に次の2行を追加し、「Sheet5」というシート名を目的の名前に変更します。
Set tSheet1 = ActiveWorkbook.Worksheets("Sheet5")
tSheet1.Range(xRangeStr).Value = Target.Value

3. Alt + Qキーを押して「Microsoft Visual Basic for Applications」ウィンドウを閉じます。

これで、Sheet1のドロップダウンリストから項目を選択すると、指定されたワークシートのドロップダウンリストが自動的に同じ選択に同期されます。以下のデモをご覧ください。

A GIF showing how the drop-down lists synchronize across worksheets when an item is selected in Excel


デモ: Excelで複数のワークシート間のドロップダウンリストを同期させる

 

最高のオフィス生産性ツール

🤖 Kutools AI Aide:データ分析を革新:インテリジェント実行   |  コード生成  |  カスタム数式の作成  |  データを分析してグラフを生成  |  Kutools Functions を呼び出す
人気機能重複の検索・ハイライト・マーキング   |  空白行を削除   |  データを失わず列やセルを統合   |   丸める ...
スーパーLOOKUP複数条件VLOOKUP   複数値VLOOKUP  |  複数シートの検索  |  ファジーマッチ ....
高度なドロップダウンリストすばやくドロップダウンリストを作成   |  依存型ドロップダウンリスト   |  複数選択ドロップダウンリスト ....
列の管理:特定数の列を追加  | 列を移動  | 非表示列の表示状態を切り替え |  範囲と列の比較 ...
注目機能グリッドフォーカス   |  デザインビュー  |  強化された数式バー   ワークブック&ワークシートの管理   |  オートテキスト ライブラリ (Auto Text)   |  日付ピッカー   |  データの統合   |  セルの暗号化/復号化    リスト送信で電子メールを送信   |  スーパーフィルター   |   特殊フィルタ(太字/斜体/取り消し線でフィルタ...)
トップ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%向上し、1日に何百回ものマウスクリックも削減できます!