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

複数のワークシートから条件に基づいて行を新しいシートにコピーするにはどうすればよいですか?

Author: Xiaoyang Last Modified: 2025-08-06

例えば、以下のスクリーンショットに示すように、同じフォーマットを持つ3つのワークシートが含まれているワークブックがあるとします。ここで、列Cに「完了」というテキストが含まれるすべての行をこれらのワークシートから新しいワークシートにコピーしたいと考えています。これを1つずつ手動でコピー&ペーストすることなく、迅速かつ簡単に解決するにはどうすればよいでしょうか?

sample data 1 ample data 2 ample data 3

VBAコードを使用して、基準に基づいて複数のワークシートから新しいシートに行をコピーする


VBAコードを使用して、基準に基づいて複数のワークシートから新しいシートに行をコピーする

次のVBAコードは、特定の条件に基づいてワークブック内のすべてのワークシートから特定の行を新しいワークシートにコピーするのに役立ちます。以下のように操作してください:

1. ALT + F11 キーを押して、Microsoft Visual Basic for Applications ウィンドウを開きます。

2. 「挿入」>「モジュール」をクリックし、次のコードをモジュールウィンドウに貼り付けます。

VBAコード: 複数のシートから基準に基づいて新しいシートに行をコピーする

Public Sub CopyRows_ValuesAndNumberFormats()
Dim xWs As Worksheet
Dim xCWs As Worksheet
Dim xRg As Range
Dim xStrName As String
Dim xRStr As String
Dim xRRg As Range
Dim xC As Integer
On Error Resume Next
Application.DisplayAlerts = False
xStr = "Kutools for Excel"
xRStr = "Completed"
Set xCWs = ActiveWorkbook.Worksheets.Item(xStr)
If Not xCWs Is Nothing Then
    xCWs.Delete
End If
Set xCWs = ActiveWorkbook.Worksheets.Add
xCWs.Name = xStr
xC = 1
For Each xWs In ActiveWorkbook.Worksheets
    If xWs.Name <> xStr Then
        Set xRg = xWs.Range("C:C")
        Set xRg = Intersect(xRg, xWs.UsedRange)
        For Each xRRg In xRg
            If xRRg.Value = xRStr Then
               xRRg.EntireRow.Copy
               xCWs.Cells(xC, 1).PasteSpecial xlPasteValuesAndNumberFormats
               xC = xC + 1
            End If
        Next xRRg
    End If
Next xWs
Application.DisplayAlerts = True
End Sub

: 上記のコードでは:

  • この xRStr = "Completed" スクリプトの「完了」というテキストは、行をコピーするための特定の条件を示しています;
  • この Set xRg = xWs.Range("C:C") スクリプトの C:C は、条件が存在する特定の列を示しています。

3. 次に、F5キーを押してこのコードを実行すると、特定の条件を持つすべての行が現在のブック内にある「Kutools for Excel」という名前の新しいワークシートにコピーされ、貼り付けられます。スクリーンショットをご覧ください:

vba code to copy rows from multiple worksheets based on criteria



関連するデータの抽出やコピーに関する記事:

  • Excelで高度なフィルターを使用してデータを別のワークシートにコピーする
  • 通常、同じワークシート内の生データからデータを抽出するために、高度なフィルター機能をすぐに適用できます。しかし、時々、フィルター結果を別のワークシートにコピーしようとすると、次の警告メッセージが表示されることがあります。このような場合、Excelでこのタスクをどのように処理すればよいでしょうか?
  • Excelで列の基準に基づいて新しいシートに行をコピーする
  • 例えば、果物の購入表があり、指定された果物に基づいてレコードを新しいシートにコピーする必要がある場合、Excelでこれを簡単に実行するにはどうすればよいでしょうか?ここでは、Excelで列の基準に基づいて新しいシートに行をコピーするいくつかの方法を紹介します。
  • Excelで列に特定のテキスト/値が含まれる場合に行をコピーする
  • 例えば、列内の特定のテキストまたは値を含むセルを見つけ、その見つかったセルが存在する行全体をコピーしたい場合、それをどのように処理すればよいでしょうか?ここでは、Excelで列に特定のテキストまたは値が含まれているか確認し、該当する行全体をコピーするいくつかの方法を紹介します。

  • スーパー数式バー(複数行のテキストや数式を簡単に編集可能); 閲覧レイアウト(多数のセルを簡単に読み取り・編集可能); フィルター範囲への貼り付け...
  • セル/行/列を結合してデータを保持; セル内容を分割; 重複する行を統合して合計/平均を計算... 重複セルを防止; 範囲を比較...
  • 重複または一意の行を選択空白行を選択(すべてのセルが空); スーパー検索および多くのワークブックでのあいまい検索; ランダム選択...
  • 数式参照を変更せずに複数のセルを正確にコピー; 複数のシートへの自動参照作成; 箇条書き、チェックボックスなどを挿入...
  • お気に入りの数式、範囲、グラフ、画像を素早く挿入; パスワードでセルを暗号化メーリングリストを作成してメールを送信...
  • テキストの抽出、テキストの追加、特定の位置の文字を削除、スペースを削除; ページング小計の作成と印刷; セルの内容とコメント間の変換...
  • スーパーフィルター(他のシートにフィルタースキームを保存して適用); 月/週/日ごとの高度な並べ替え、頻度など; 太字、斜体による特殊フィルタリング...
  • ワークブックとワークシートを統合; 主キーカラムに基づいてテーブルをマージ; データを複数のシートに分割xls、xlsx、PDFの一括変換...
  • ピボットテーブルのグループ化(週番号、曜日など)... ロックされたセルとロックされていないセルを異なる色で表示; 数式/名前を持つセルをハイライト...
kte tab 201905
  • Word、Excel、PowerPoint、Publisher、Access、Visio、Projectでタブ付き編集と閲覧を有効化します。
  • 新しいウィンドウではなく、同じウィンドウ内の新しいタブで複数のドキュメントを開き、作成します。
  • 生産性を50%向上させ、毎日数百回のマウスクリックを削減します!
officetab bottom