Excelでフィルタ適用中にコピー&ペーストする5つの方法【VBAマクロも解説】
コピー&ペーストは、データ管理において最もよく使われる操作のひとつです。Excelでは通常の状態であれば簡単にコピペができますが、フィルタ機能が適用されていると話は別です。非表示の行まで一緒に貼り付けてしまったり、意図しないセルにデータが入ってしまったりと、思わぬトラブルが起こりがちです。
この記事では、フィルタが適用された状態でも正しくコピー&ペーストを行うための5つの方法を解説します。説明には、複数都市の店舗(スーパーマーケット)における特定の果物の価格データを使用します。
フィルタ適用時にコピー&ペーストする5つの方法
方法1:フィルタ済みのセル範囲をそのままコピーする
まずは基本となる方法です。フィルタで絞り込んだデータ範囲をコピーし、フィルタがかかっていない別の場所に貼り付けます。ここでは「New York」店のデータだけを抽出してみましょう。
手順1:
- 「Store」列見出しの矢印(フィルタボタン)をクリックします。
- 一覧からNew Yorkのみにチェックを入れます。
- OKを押して確定します。

以下のように、New York店のデータだけが表示されます。

手順2:
- 表示されているNew Yorkのデータ範囲をすべて選択します。
- Ctrl+Cでデータをコピーします。このとき、非表示行は自動的に除外され、表示されているセルだけがコピーされます。

手順3:
- 貼り付け先のセル(ここではB18)を選択します。
- Ctrl+Vで貼り付けます。

これで、New York店のデータだけをきれいに抽出できました。
方法2:フィルタで絞り込んだ複数セルに同じ値を貼り付ける
次に、フィルタで絞り込んだ複数のセルに対して、同じ値を一括で入力・貼り付けする方法を紹介します。例として、バナナの価格が改定され、全店舗で同じ価格に統一するケースを想定します。
手順1:
- 「Fruit」列のフィルタボタンをクリックします。
- 一覧からBananaのみを選択します。
- OKを押します。

バナナの行だけが表示されました。

手順2:
- 17行目あたりの空いている行に、新しいバナナの価格を入力しておきます。

手順3:
- 新しい価格が入力されたセルC17を選択し、Ctrl+Cでコピーします。
- 貼り付け先となる、絞り込まれた価格セル(D8、D11、D14、D15など)をCtrlキーを押しながら選択します。

手順4:
- Ctrl+Vで貼り付けます。選択したすべてのセルに同じ値が入ります。

手順5:
- 最後に「Fruit」列のフィルタを解除し、すべてのデータを再表示します。

目的のセルだけが更新され、元のデータセットが完成しました。

方法3:フィルタデータ内でセル範囲の値をコピー&ペーストする
次は、絞り込んだデータ内で複数の値をまとめて置き換える方法です。輸送費の高騰によりDallas店の価格が改定されたケースを想定し、更新後の価格を元のデータセットに反映させます。
手順1:
- 「Store」列のフィルタボタンをクリックします。
- 一覧からDallasのみを選択し、OKを押します。

Dallas店のデータだけが表示されます。

手順2:
- 隣に「New Price」という作業列を作成し、そこに新しい価格を入力していきます。まず既存のPrice列の値はそのままにしておきます。
手順3:
- 作業列の先頭セル(D6など)に、対応するOrangeの新しい価格セル参照を入力します。

手順4:
- Enterキーを押して確定します。
手順5:
- セル右下のフィルハンドルを、データが続く最終行までドラッグします。

手順6:
- データセット全体を再表示するため、「Store」列のフィルタで(すべて選択)にチェックを入れ、OKを押します。

Dallas店の価格が更新された全データが表示されます。

手順7:
- 動作確認のため、参照元のセル(E15など)の値を削除してみます。

参照元が空のため、対応するセルも空白になります。このままでは数式依存の状態なので、値として固定する必要があります。
手順8:
- Ctrl+Zで直前の操作を元に戻します。
- Price列の該当セル範囲を選択し、Ctrl+Cでコピーします。

手順9:
- 同じ範囲でマウスを右クリックします。
- 貼り付けオプションから「値(V)」を選択します。

これで数式ではなく値として貼り付きました。

手順10:
- 最後に、作業用の「New Price」列の値を削除して完成です。

方法4:VBAマクロを使ってフィルタ済みセルにコピー&ペーストする
操作を自動化したい場合は、VBAマクロの活用が便利です。表示されているセルだけを判定し、非表示行をスキップしながら貼り付けるコードを紹介します。
手順1:
- 前の方法と同様に、Dallas店のデータでフィルタします。

手順2:
- 「開発」タブを開きます。
- マクロの記録を選択します。
- マクロ名をCopy_Paste_Dataとして新規作成し、OKを押します。

手順3:
- 「マクロ」ダイアログを開きます。
- Copy_Paste_Dataを選択し、「ステップイン」をクリックしてVBE(Visual Basic Editor)を開きます。

手順4:
- コードウィンドウに以下のコードを入力します。
Sub Copy_Paste_Data()
Dim n As Range
Dim source_data_1 As Range
Dim destination_data_1 As Range
Dim source_data_2 As Range
Dim destination_data_2 As Range
Set n = Application.Selection
n.SpecialCells(xlCellTypeVisible).Select
Set source_data_1 = Application.Selection
Set destination_data_1 = Application.InputBox("Insert the destination Location:", Type:=8)
For Each source_data_2 In source_data_1
source_data_2.Copy
For Each destination_data_2 In destination_data_1
If destination_data_2.EntireRow.RowHeight <> 0 Then
destination_data_2.PasteSpecial
Set destination_data_1 = destination_data_2.Offset(1).Resize(destination_data_1.Rows.Count)
Exit For
End If
Next destination_data_2
Next source_data_2
End Sub
手順5:
- このコードは選択範囲をコピー元として使用します。貼り付けたいセル範囲(New Price列のデータ)を事前に選択しておきます。

手順6:
- タブ上の実行ボタンをクリックするか、F5キーを押してコードを実行します。

手順7:
- 貼り付け先を指定するダイアログが表示されます。

下図のように貼り付け先の範囲を指定します。

手順8:
- OKを押すと処理が実行されます。

New Price列の値がPrice列へ貼り付けられました。
手順9:
- フィルタの「すべて選択」で全データを再表示します。

手順10:
- 最後に「New Price」列の値を削除します。

補助データを削除しても、Price列の値には影響しません。
方法5:クイックアクセスツールバーにマクロを登録する
VBAマクロを頻繁に使うなら、クイックアクセスツールバーに登録するとワンクリックで実行できて便利です。
手順1:
- リボン上部のクイックアクセスツールバーのユーザー設定(▼)をクリックします。
- 「その他のコマンド」を選択します。

手順2:
- 「Excelのオプション」ダイアログが表示されます。
- 左側でクイックアクセスツールバーを選択します。
- 「コマンドの選択」ドロップダウンからマクロを選びます。

手順3:
- Copy_Paste_Dataを追加します。
- OKをクリックして完了です。

ワークシート上部にマクロ実行ボタンが追加されました。

補足:コピーできないときは「選択オプション」を使う
フィルタ適用中にCtrl+Cでのコピーがうまくいかない場合は、「ジャンプ」のセル選択オプションを利用しましょう。手順は以下の通りです。
- F5キーを押すと「ジャンプ」ダイアログが表示されます。
- 「セル選択」ボタンをクリックします。

- 「選択オプション」で可視セルのみを選択します。
- OKを押せば、表示されているセルだけが選択された状態になり、正しくコピーできます。

なお、ショートカットキーAlt + ;(セミコロン)でも可視セルのみを選択できるので、覚えておくと便利です。
まとめ
この記事では、Excelでフィルタが適用されている状態でのコピー&ペーストの方法を5つ紹介しました。単純な範囲コピーから、同じ値の一括入力、VBAマクロによる自動化まで、状況に応じて使い分けることで作業効率が大きく向上します。特に「可視セルのみを選択する」テクニックは、フィルタ操作全般で役立つのでぜひ活用してください。
関連記事
- Excelでフィルタを追加する方法(4つの方法)
- Excelフィルタのショートカットキー活用術(3つの使用例)
- Excelで複数列を同時にフィルタする3つの方法
- Excelで重複しない値をフィルタする8つの方法
- Excelで複数列を個別にフィルタする方法
- Excelのテキストフィルタの使い方(5つの例)
- Excelでユーザー設定フィルタを使う5つの方法
- Excelでフィルタを解除する5つの簡単な方法
-
Excelでフィルターのドロップダウンリストをコピーする5つの方法
Excelでフィルターのドロップダウンリストを効率的にコピーしたいとお考えなら、この記事が参考になります。ここでは、さまざまな状況に応じてフィルターのドロップダウンリストをコピーする5つの方法を詳しく解説します。それでは、本題に入りましょう。 5つの方法でExcelのフィルタードロップダウンリストをコピーする ここでは、販売担当者の名前と製品ごとの売上額が記録されたデータセットを使用します。このデータセットに対してフィルターを有効にしており、これから紹介する方法で、フィルターのドロップダウンリストをコピーする手順を説明していきます。 なお、本記事では Microsoft 365 版 Exce
-
Chromebookでのコピー&ペースト方法まとめ|ショートカットキーからクリップボード管理まで徹底解説
Chromebookは、軽量なOSを搭載している点と、Androidアプリをほぼ問題なく動作させられる点から、人気が高まり続けています。ノートパソコンユーザーは、映画鑑賞・ゲーム・メールの送受信・文書の読み書きといった比較的軽い作業が中心のユーザーと、本格的なプロ向けの作業を行うユーザーに大別されます。ヘビーユースにはWindowsノートPCが適していますが、Windows Core OS搭載機が登場するまでの間、軽めの作業用途にはChromebookが最適な選択肢と言えるでしょう。 ただし、多くの方はWindowsノートPCの操作に慣れているため、独自のコマンドや操作体系を持つChromeb