絞り込んだ結果をコピーする
Sheet1のA1:C11で絞り込まれた行を、見出しを含めてE1へコピーします。
実行前に確認
- 手動で隠した行・列も除外されます。列はすべて表示した状態で実行してください。
- コピー先の値・数式・書式が上書きされます。通常の元に戻すは使えません。
1サンプルコード
Sub Example1106()
Dim ws As Worksheet
Dim r As Range
Set ws = ThisWorkbook.Worksheets("Sheet1")
If MsgBox("E1:G11付近を上書きします。続けますか?", vbYesNo + vbExclamation) <> vbYes Then Exit Sub
Set r = ws.Range("A1:C11").SpecialCells(xlCellTypeVisible)
r.Copy Destination:=ws.Range("E1")
End Sub表で見る処理のイメージ実行前・実行後のセルを見比べる
Sheet1のA1:C11で絞り込まれた行を、見出しを含めてE1へコピーします。
A・B・Cは列、1・2・3は行です。例えば「B2」はB列の2行目のセルです。この表は説明用のサンプルです。
実行前
コピー元と空のコピー先(非表示行も位置確認用に掲載)
| A | B | C | D | E | F | G | |
|---|---|---|---|---|---|---|---|
| 1 | 地域 | 金額 | 日付 | — | — | — | — |
| 2 | 東京 | 1200 | 2026/10/01 | — | — | — | — |
| 3 | 大阪 | 800 | 2026/10/02 | — | — | — | — |
| 4 | 東京都 | 5000 | 2026/09/30 | — | — | — | — |
| 5 | 名古屋 | 6000 | 2025/10/01 | — | — | — | — |
| 6 | — | 2500 | 2026/10/01 | — | — | — | — |
| 7 | 東京 | 3000 | 2026/12/15 | — | — | — | — |
| 8 | 東東京 | 1000 | 2026/10/31 | — | — | — | — |
| 9 | 大阪 | 4500 | 2026/12/31 | — | — | — | — |
| 10 | 福岡 | 700 | 2027/01/01 | — | — | — | — |
| 11 | 東京 | 5200 | 2026/11/01 | — | — | — | — |
実行後
コピー後(非表示行も位置確認用に掲載)
| A | B | C | D | E | F | G | |
|---|---|---|---|---|---|---|---|
| 1 | 地域 | 金額 | 日付 | — | 地域 | 金額 | 日付 |
| 2 | 東京 | 1200 | 2026/10/01 | — | 東京 | 1200 | 2026/10/01 |
| 3 | 大阪 | 800 | 2026/10/02 | — | 東京 | 3000 | 2026/12/15 |
| 4 | 東京都 | 5000 | 2026/09/30 | — | 東京 | 5200 | 2026/11/01 |
| 5 | 名古屋 | 6000 | 2025/10/01 | — | — | — | — |
| 6 | — | 2500 | 2026/10/01 | — | — | — | — |
| 7 | 東京 | 3000 | 2026/12/15 | — | — | — | — |
| 8 | 東東京 | 1000 | 2026/10/31 | — | — | — | — |
| 9 | 大阪 | 4500 | 2026/12/31 | — | — | — | — |
| 10 | 福岡 | 700 | 2027/01/01 | — | — | — | — |
| 11 | 東京 | 5200 | 2026/11/01 | — | — | — | — |
色付きは注目する場所です。「—」は未入力、「(空文字)」は数式などが返す空の文字列を表します。
通常範囲A1:C11を全行掲載しています。日付列は文字列ではなくExcelの日付値を表示したものです。 実行前はA列「東京」で絞り込み、3~6・8~10行目は非表示です。表はコピー先の位置を示すため非表示行も掲載しています。「はい」を選ぶと、見出しと元の2・7・11行目がE1:G4へ詰めてコピーされます。コピー先の3・4行目も元の行の非表示状態に従うため、結果を画面で確認するには後で絞り込みを解除してください。E1:G11は事前に空欄です。
使い方・実行手順を確認する4つの手順で、コードの使い方を確認できます
- 1
練習用のブックを.xlsm形式で保存し、Sheet1という名前のシートを用意します。A1:C11に見出し付きの表を作り、[データ]→[フィルター]で行を絞り込みます。E1:G11は出力用に空けます。
- 2
Alt+F11でVBEを開き、[挿入]→[標準モジュール]へコードを貼り付けます。
- 3
A1:C11が元の表、E1がコピー先です。
- 4
マクロ内にカーソルを置いてF5で実行します。表示中の行と見出しがE1から並びます。