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

Excelで複数の選択範囲やセル範囲をコピーするにはどうすればよいですか?

Author: Xiaoyang Last Modified: 2025-08-06

日常的なExcel作業では、連続したブロックではなく、大きなワークシート全体に散らばったデータの一部が必要になることがよくあります。たとえば、特定の表、列、または隣接していないセルをコピーして、一度に別のワークシートにまとめたり転送したりしたい場合があります。しかし、いくつかの非連続的な範囲を選択して一緒にコピーしようとすると、Excelは「そのコマンドは複数の選択範囲に対して使用できません」という警告を表示します。これはフラストレーションを招きやすく、デフォルトのExcel機能を使用している場合、データの配布やコンパイルが煩雑になる原因となります。では、複数の選択範囲を迅速にコピーするための効果的な方法は何でしょうか?このガイドでは、各方法の価値、適用可能なシナリオ、および注意すべき点について分析しながら、いくつかの実用的なソリューションを紹介します。これにより、これらの一般的なスプレッドシート要件をより効率的に処理できるようになります。


クリップボードを使用して複数の選択範囲をコピーする

Excelの組み込みクリップボードは見過ごされがちですが、ワークシート全体にわたって複数のコンテンツスニペットを集約することができます。クリップボードペインを使用することで、異なる場所からコンテンツを一つずつコピーして集め、それらをすべてまとめて目的のワークシート上の選択したエリアに貼り付けることができます。この回避策は、視覚的なコンテンツ、図形、または小さな選択範囲を集める必要がある場合に最適です。ただし、Excelはこれらを個々のコピー操作として扱うため、貼り付け時に書式や構造が必ずしも一貫して保持されるとは限りません。以下は詳細な手順と覚えておくべき重要なポイントです:

1クリックしてください ホーム > a screenshot of the launch icon in the Clipboard group にある クリップボード グループで表示される クリップボード ペイン(通常、Excelのリボン内のクリップボードグループの右下にあります)。スクリーンショットをご覧ください:
a screenshot showing how to open the Clipboard pane in Exel

2. コピーしたい範囲を1つずつコピーします。各コピー後に、選択された内容が左側のクリップボードペインに個別の項目として表示されます。結合したいすべての範囲についてこのプロセスを繰り返します。クリップボードリストを確認し、必要な範囲がすべてキャプチャされていることを確認し、貼り付け前に意図しないコピーを削除できます。

3. ワークシートに移動し、コピーした範囲を集約したい宛先セルを選択します。クリップボードペインで、「すべて貼り付け」をクリックして、収集されたすべての項目を一度に貼り付けます。

クリップボード経由での貼り付けは、デフォルトでコンテンツを垂直方向に積み重ねます。したがって、データが特定の構造で整列する必要がある場合、特に表やリストの場合、貼り付け結果を調整する必要があるかもしれません。また、クリップボードは最大24個のアイテムを保持します。これを超えると、最も古いアイテムが置き換えられます。重要なデータを誤って上書きしないように、常に貼り付けエリアがクリアであることを確認してください。

多くのワークシートやワークブックからの複数の選択範囲を単一のワークシートやワークブックに簡単に結合する

多くのシートやワークブックからコンテンツを集約またはマージする必要がある場合、ワークブック間で手動でのコピー&ペーストを繰り返すことは退屈で、エラーが発生しやすく、時間もかかります。特に大規模なデータ集約の場合にそうです。Kutools for Excelの 結合(ワークシートとワークブック) ユーティリティを使用すると、複数のシートやワークブックを1つの目的地に効率的に統合でき、手作業を最小限に抑え、データ構造を維持できます。これは月次レポート、部門間のデータサマリー、または過去のデータの統合に理想的です。


a screenshot of easily ombine multiple selections from many worksheets/workbooks into single worksheet/workbook with Kutools for Excel

Kutools for Excel - 必要なツールを300以上搭載し、Excelの機能を大幅に強化します。永久に無料で利用できるAI機能もお楽しみください!今すぐ入手

VBAコードを使用して複数の選択範囲をコピーする

ワークフローで複数の離れた範囲をコピーすることが頻繁に発生する場合、VBA(Visual Basic for Applications)を使用してプロセスを自動化することで、大幅な時間短縮ができ、人為的ミスを減らすことができます。このソリューションは、毎週同じセクションをコピーしたり、報告のためにデータを再フォーマットするなど、反復的で構造化されたタスクが必要な高度なユーザーに最適です。この方法は柔軟性を向上させますが、貼り付け位置に細心の注意を払い、データの偶発的な上書きを避けるために慎重なステップバイステップの操作が必要です。

1. Ctrlキーを押しながら、マウスを使用して収集したい非隣接範囲をそれぞれ選択します。

2. Alt + F11を同時に押してMicrosoft Visual Basic for Applications(VBA)エディターを開き、挿入 > モジュールをクリックします。次のコードをモジュールウィンドウに直接貼り付けます:

Option Explicit
Sub CopyMultipleSelection()
Dim SelAreas() As Range
Dim PasteRange As Range
Dim UpperLeft As Range
Dim NumAreas As Integer, i As Integer
Dim TopRow As Long, LeftCol As Integer
Dim RowOffset As Long, ColOffset As Integer
Dim NonEmptyCellCount As Integer
' Exit if a range is not selected
If TypeName(Selection) < > "Range" Then
MsgBox "Select the range to be copied. A multiple selection is allowed."
Exit Sub
End If
' Store the areas as separate Range objects
NumAreas = Selection.Areas.Count
ReDim SelAreas(1 To NumAreas)
For i = 1 To NumAreas
Set SelAreas(i) = Selection.Areas(i)
Next
' Determine the upper left cell in the multiple selection
TopRow = ActiveSheet.Rows.Count
LeftCol = ActiveSheet.Columns.Count
For i = 1 To NumAreas
If SelAreas(i).Row < TopRow Then TopRow = SelAreas(i).Row
If SelAreas(i).Column < LeftCol Then LeftCol = SelAreas(i).Column
Next
Set UpperLeft = Cells(TopRow, LeftCol)
' Get the paste address
On Error Resume Next
Set PasteRange = Application.InputBox _
(Prompt:="Specify the upper left cell for the paste range:", _
Title:="Copy Mutliple Selection", _
Type:=8)
On Error GoTo 0
' Exit if canceled
If TypeName(PasteRange) < > "Range" Then Exit Sub
' Make sure only the upper left cell is used
Set PasteRange = PasteRange.Range("A1")
' Check paste range for existing data
NonEmptyCellCount = 0
For i = 1 To NumAreas
RowOffset = SelAreas(i).Row - TopRow
ColOffset = SelAreas(i).Column - LeftCol
NonEmptyCellCount = NonEmptyCellCount + _
Application.CountA(Range(PasteRange.Offset(RowOffset, ColOffset), _
PasteRange.Offset(RowOffset + SelAreas(i).Rows.Count - 1, _
ColOffset + SelAreas(i).Columns.Count - 1)))
Next i
' If paste range is not empty, warn user
If NonEmptyCellCount < > 0 Then _
If MsgBox("Overwrite existing data?", vbQuestion + vbYesNo, _
"Copy Multiple Selection") < > vbYes Then Exit Sub
' Copy and paste each area
For i = 1 To NumAreas
RowOffset = SelAreas(i).Row - TopRow
ColOffset = SelAreas(i).Column - LeftCol
SelAreas(i).Copy PasteRange.Offset(RowOffset, ColOffset)
Next i
End Sub

3. VBAウィンドウで、実行ボタン(またはF5キー)をクリックしてコードを実行します。

4入力ボックスが表示され、結合した範囲を貼り付ける左上のセルを指定するよう促されます。 OK 確認後、クリックします。
a screenshot of selecting a destination cell to place the copied ranges

予防措置とトラブルシューティング: このVBAコードは、指定された宛先の左上からコピーした選択範囲を配置します。宛先エリアが空でない場合、データが上書きされる可能性があるため注意が必要です。もし「添字が範囲外」やエラーメッセージが表示された場合は、選択範囲が完全にセル範囲で構成されているか確認してください。このアプローチは図形やグラフなどの非セルアイテムのコピーをサポートせず、値とセルの書式のみをコピーし、オブジェクトはコピーしません。


1つのワークシートから複数の選択範囲を迅速にコピーする

Kutools for Excelは、Copy Rangesツールを提供しており、これはワークシート内で必要なすべての範囲を選択し、1回のステップでコピーできます。使いやすいインターフェースで、コピーしたコンテンツをどのように貼り付けるかを正確に選択できます。つまり、すべての内容、数式のみ、値のみ、書式のみなどを選べます。さらに、行の高さや列幅を保持することも可能で、時間を節約し、一貫した書式を確保できます。

Kutools for Excel - 必要なツールを300以上搭載し、Excelの機能を大幅に強化します。永久に無料で利用できるAI機能もお楽しみください!今すぐ入手

1Ctrlキーを押しながら、必要な範囲を1つずつ選択します。次に Ctrl キーを押しながら移動し、 Kutools > Copy Rangesを選択します。スクリーンショットをご覧ください:
a screenshot of enabling and configuring the Copy Multiple Ranges feature of Kutools for Excel

2. 「複数の範囲をコピー」ダイアログボックスで、特別な貼り付けオプションから「すべて」を選択し、OKをクリックして確認します。ここで、貼り付け設定をさらにカスタマイズできます。たとえば、値のみ、またはすべての書式を含めることができます。

注意: 全ての範囲の元の行の高さと列幅を維持するには、OKをクリックする前に「行の高さを含める」と「列幅を含める」オプションをチェックしてください。これは、テンプレートやクリーンなレポートを作成する場合など、構造的な外観が重要である場合に役立ちます。

3表示される宛先選択ボックスで、ターゲットとなる貼り付け範囲の左上のセルを指定し、 OK.
a screenshot of selecting a destination cell

をクリックします。選択したすべての範囲は、元の寸法を保持しつつ、連続して宛先に貼り付けられます。この方法は高速で、手動での繰り返しコピー&ペーストを避けられ、貼り付け結果をワークフローに合わせて柔軟に調整できます。

「複数の範囲をコピー」ユーティリティに関する詳細情報はこちらをクリック       

Kutools for Excel - 必要なツールを300以上搭載し、Excelの機能を大幅に強化します。永久に無料で利用できるAI機能もお楽しみください!今すぐ入手


多くのワークシートやワークブックから複数の範囲をコピーする

多数のワークシートや異なるワークブックからデータを集約することは、サマリーレポートやデータ分析でよく必要とされます。これを手動で行うのは時間がかかり、特に大容量のファイルを扱う場合、ミスが発生しやすくなります。Kutools for Excelは、Combine Worksheetsユーティリティを提供しており、複数のシートやワークブックから指定された範囲をコピーする簡単かつガイド付きのプロセスを実現します。このツールは、月次の統合、アンケート結果のマージ、請求データ、そしてデータが複数のソースに分散している他のタスクに最適です。

Kutools for Excel - 必要なツールを300以上搭載し、Excelの機能を大幅に強化します。永久に無料で利用できるAI機能もお楽しみください!今すぐ入手

1. Excelのリボンで Kutools Plus > 結合 をクリックして開始します。

2. 「ワークシートの結合 – ステップ1/3」ダイアログボックスで、 複数のワークシートを1つのワークシートに結合 を選んで 次へ.
a screenshot of choosing the Combine multiple worksheets from workbook into one worksheet option in the Combine Worksheets wizard

3をクリックします。ステップ2/3では、次の操作を行います:
a screenshot of selecting a workbook and the ranges in different worksheets you will copy
  (1) ワークブックリストで、ワークブックを選択し、その後各シートの横にある a screenshot of the selection button 参照 ボタンをクリックして、取得したい正確な範囲を選択します。
  (2) 追加のワークブックを含めるには、 追加をクリックし、(1)を繰り返して追加ファイルから範囲を指定します。
  (3) すべての選択を確認後、 完了 をクリックします。

Kutools for Excel - 必要なツールを300以上搭載し、Excelの機能を大幅に強化します。永久に無料で利用できるAI機能もお楽しみください!今すぐ入手

4. 設定を保存して将来の利用に備えるかどうかを尋ねるメッセージが表示されます。「はい」をクリックして保存するか、「いいえ」をクリックして保存せずに進むことができます。

完了すると、さまざまなシートやワークブックから指定されたすべての範囲が、新しいワークシートまたはワークブックに自動的に収集され配置されます。これにより、データ構造を維持しながら、手動での繰り返しコピー&ペーストなしに、分散した情報を迅速にコンパイルできます。


Excelの数式を使用して複数の範囲をコピーし統合する

VBAやクリップボードを使わずに、非連続的な範囲の内容を集約して1つのリストやサマリーにしたいユーザーにとって、Excelの数式は非常に便利です。これは特に、構造化されたデータセットを扱っている場合、例えば、いくつかの列やリストからすべてのデータを1つのサマリー領域に集める場合に適しています。以下は、以下の数式を使用した実用的な例です:

1. A1:A5C1:C5の範囲のデータをE1から始まる1つの列に結合するとします。E1に次の数式を入力します:

=VSTACK(A1:A5, C1:C5)

2. Enterキーを押して確認します。両方の範囲のすべての値がE1以降に積み重なって表示されます。いくつかの非隣接範囲のすべてのデータを別の場所にまとめたい場合は、VSTACK内の範囲を修正するだけです。

メモ:
  • VSTACK関数は、Microsoft 365向けのExcel、Mac向けのMicrosoft 365のExcel、Web向けのExcelにのみ適用されます。
  • お使いのExcelバージョンが対応していない場合、 VSTACK範囲をコピーするために次の数式を使用できます。以下は、結合する例です。 A1:A5 および C1:C5E1:E10:
    =IF(ROW(A1)<=5,INDEX(A$1:A$5,ROW(A1)),INDEX(C$1:C$5,ROW(A1)-5))
    E1のセルにこの数式を入力し、Enterキーを押し、それをE10までドラッグします。これにより、A1:A5の最初の5つの値とC1:C5の次の5つの値が1つの列に配置されます。ソースデータに応じて範囲サイズや参照を調整してください。

予防措置と注意点: これらの数式は静的なデータサマリーに最適ですが、書式、数式、グラフ、または結合されたセルは保持されません。リストやシンプルなテーブルを統合するのに最適です。#REF!のようなエラーが発生した場合は、範囲の境界を再度確認してください。

複数の範囲を扱う際は、選択範囲を常に再確認し、特にVBAスクリプトを実行したり、混雑したワークブックでアドインを使用する場合には、一括操作を行う前にバックアップを作成することを検討してください。予期しない貼り付け結果が発生した場合、ソースの書式と宛先エリアの構造を確認してください。Kutools for Excelは、これらのプロセスを簡素化することを目的としており、効率的に処理するための安定したツールを提供します。状況に最も適した方法を選んでください。たまに使用する場合は、クリップボードやExcelの数式でも十分でしょう。頻繁または大規模なタスクには、VBAやKutoolsのユーティリティを利用するのが最も便利で正確です。


デモ:1つのワークシートから複数の選択範囲をコピーする

 

デモ:多くのワークブックやワークシートから複数の選択範囲をコピーする

 

Kutools for Excel: あなたの指先に 300 以上の便利なツールが集結!永久無料のAI機能をお楽しみください!今すぐダウンロード!

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

🤖 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日に何百回ものマウスクリックも削減できます!