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

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

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

Author Siluvia Last modified

あるワークブック内の複数のワークシートに、まったく同じドロップダウン項目を持つドロップダウンリストがあるとします。ここで、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:データ分析を革新します。主な機能: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日間フル機能お試し —— 登録やクレジットカード不要
  • コストパフォーマンス最適 —— 個別購入よりお得