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

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

Excelでドロップダウンリストのあるセルへのコピー&ペーストを防ぐにはどうすればよいですか?

Author Siluvia Last modified

データ検証のドロップダウンリストは、Excelの特定のセルに入力できる情報の種類を制御する効果的な方法であり、ワークシート内のデータの一貫性と整合性を維持するのに役立ちます。しかし、よくある問題として、別のセルからコンテンツをコピーしてドロップダウンリストのあるセルに貼り付けると、データ検証が削除され、ドロップダウンリストが消えてしまいます。これにより、特にユーザー入力をドロップダウンリストで提供されたオプションに制限する必要がある場合、データ検証ルールが失われ、スプレッドシートの論理が破綻することがあります。

ドロップダウンセルの整合性を維持するために、ユーザーがそれらに上書きできないようにしたい場合があります。これにより、これらの重要なフィールドのすべてのデータが意図した制限とオプションに従い続けます。このチュートリアルでは、VBAを使用してドロップダウンリストを持つセルでのコピー&ペースト操作を効果的に停止する方法を学びます。この方法は、フォーム、制御された入力テンプレート、またはデータ品質が不可欠なワークシートに適しています。

Excelでドロップダウンリストのあるセルへのコピー&ペーストを防止する


Excelでドロップダウンリストのあるセルへのコピー&ペーストを防止する

貼り付けられたコンテンツによってドロップダウンリストが上書きされるのを防ぐために、そのセルを含むワークシートでVBAを使用できます。以下の手順に従ってください:

1. 保護したいドロップダウンを含むワークシートを開きます。

2. Alt + F11 を押して Visual Basic for Applications ウィンドウを開きます。

3. 左側のペインで、保護を適用したいシート("ThisWorkbook"ではない)をダブルクリックします。次のVBAコードをコードエディターに貼り付けます:

copy and paste the code into the sheet module

VBAコード: ドロップダウンへの貼り付けを防止

Private Sub Worksheet_Change(ByVal Target As Range)
'Updated by Extendoffice
    Dim xValue As String
    Dim xCheck1 As String
    Dim xCheck2 As String
    Dim xRg As Range
    Dim xArrCheck1() As String
    Dim xArrCheck2() As String
    Dim xArrValue()
    Dim xCount, xJ As Integer
    Dim xBol As Boolean
'    If Target.Count > 1 Then
'        Exit Sub
'        End If
    xCount = Target.Count
    ReDim xArrCheck1(1 To xCount)
    ReDim xArrCheck2(1 To xCount)
    ReDim xArrValue(1 To xCount)
    Application.EnableEvents = False
    On Error Resume Next
    xJ = 1
    For Each xRg In Target
        xArrValue(xJ) = xRg.Value
         xArrCheck1(xJ) = xRg.Validation.InCellDropdown
        xJ = xJ + 1
    Next

    Application.Undo

    xJ = 1
    For Each xRg In Target
        xArrCheck2(xJ) = xRg.Validation.InCellDropdown
        xJ = xJ + 1
    Next

    xBol = False
    For xJ = 1 To xCount
        If xArrCheck2(xJ) <> xArrCheck1(xJ) Then
            xBol = True
            Exit For
        End If
    Next

    If xBol Then
       MsgBox "The selected cells containg data validation drop-down lists, no pasting allowed."
    Else
        xJ = 1
        For Each xRg In Target
            xRg.Value = xArrValue(xJ)
            xJ = xJ + 1
        Next

    End If

    Application.EnableEvents = True
End Sub

4. Alt + Q を押してVBAエディターを閉じ、Excelに戻ります。

5. ドロップダウンセルに貼り付けを試みてください。メッセージが表示され、貼り付けが防止され、ドロップダウンはそのまま残ります:

Paste blocked dialog

注意点と制限事項:
このVBAコードは、単一セルへの貼り付けアクション向けに設計されています。複数セルへの貼り付けによるデータ検証の喪失は防げない可能性があります。ユーザーに適切に通知してください。

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

  • コードが正しいワークシートモジュール(一般的なモジュールではない)に配置されていることを確認してください。
  • ファイルを開くときにマクロを有効にしてください。
  • コードを貼り付ける際にコピー/ペーストエラーがないか再確認してください。
  • 本番データに適用する前に、サンプルファイルでマクロをテストしてください。

代替ソリューション:

  • ワークシートの保護: ドロップダウンのあるセルをロックし、ワークシートを保護して編集を防ぎます。 詳細はこちら
  • データ検証アラートの使用: アラートスタイルを「停止」に設定して無効な手動入力をブロックします。 詳細はこちら

Excelでチェックボックス付きのドロップダウンリストを簡単に作成する:

Kutools for Excel の ドロップダウンリストにチェックボックスを追加する 機能は、指定範囲、現在のワークシート、現在のワークブック、または開かれているすべてのワークブックに基づいて、チェックボックス付きのドロップダウンリストを簡単に作成するのに役立ちます。 Kutools for Excel は、ニーズに応じて指定範囲、現在のワークシート、現在のワークブック、またはすべての開かれているワークブックにチェックボックス付きのドロップダウンリストを簡単に作成するのに役立ちます。
Kutools for Excelの 30 日間の完全機能無料体験版を今すぐダウンロード!


関連記事:

Excelで複数のチェックボックスを持つドロップダウンリストを作成するには?
多くのExcelユーザーは、一度にリストから複数の項目を選択するために、複数のチェックボックスを持つドロップダウンリストを作成しようとします。実際には、データ検証を使用して複数のチェックボックスを持つリストを作成することはできません。このチュートリアルでは、Excelで複数のチェックボックスを持つドロップダウンリストを作成するための2つの方法を紹介します。このチュートリアルは、問題を解決するための方法を提供します。

Excelで別のブックからドロップダウンリストを作成する
同じブック内のワークシート間でデータ検証のドロップダウンリストを作成するのは非常に簡単です。しかし、必要なリストデータが別のブックにある場合はどうしますか?このチュートリアルでは、Excelで別のブックからドロップダウンリストを作成する方法について詳細に説明します。

Excelで検索可能なドロップダウンリストを作成する
多数の値を持つドロップダウンリストの場合、適切なものを見つけるのは簡単ではありません。以前、ドロップダウンボックスに最初の文字を入力するとドロップダウンリストが自動補完される方法を紹介しました。自動補完機能に加えて、ドロップダウンリストを検索可能にすることでも、ドロップダウンリスト内の適切な値を見つける作業効率を向上させることができます。検索可能なドロップダウンリストを作るには、このチュートリアルの方法をお試しください。

Excelのドロップダウンリストで値を選択時に他のセルを自動的に入力する
たとえば、セル範囲 B8:B14 の値に基づいてドロップダウンリストを作成したとします。ドロップダウンリストから任意の値を選択すると、セル範囲 C8:C14 の対応する値が選択されたセルに自動的に入力されるようにしたい場合があります。この問題を解決するために、このチュートリアルの方法が役立ちます。

ドロップダウンリストに関するその他のチュートリアル...

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

🤖 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日間フル機能お試し —— 登録やクレジットカード不要
  • コストパフォーマンス最適 —— 個別購入よりお得