見出し画像

マクロルーティン#17(指定のシートにまとめる)続き

シートから必要なデータだけを別シートにまとめる(続き)

皆さんこんにちは。
今回は作業シートから必要なデータだけを別のシートにまとめる方法の続きです。
マクロルーティン#16で問題を出していましたので解答後、そのまま続きの解説に進めていきたいと思います。
(関連動画:【マクロルーティン8】シートの中で必要なデータのみ別のシートにまとめる方法

★前回の問題。次の図のように「記録」シートにはデータが入っています。C列の金額が10000以上のデータのみに絞り込むマクロを作ってください。

画像1

◆解答例

画像2

ひとこと:前回の解説を読んでいただいた皆さんはスラスラできたのではないでしょうか。このコード見てデータの動きが見えればもう完璧です。

データは次の図のように絞り込まれているはずです。

画像3


ではここからが今回のレッスンです。
データを絞ったあと、指定のシートに貼り付ける作業です。

◆目標
[記録]シートで必要なデータを絞り込んだら、表全体をコピーして[ピックアップ]シートに値貼り付けする。
その後[記録]シートのフィルタを解除する。

画像6

◆書くコード

画像4

◆解説
コードが3行ありますが、
・1行目は先ほど回答した、データを絞り込むコードです。

・2行目はすでに学習済ですので見覚えがあると思います。「記録」シート全体をコピーして「ピックアップ」シートに貼り付けるというコードです。
マクロルーティン#12の【おまけ】をみてみてくださいね!
★全体のコピペではなく、[ 3列選択してコピペ ] でもいいですね。
ただし、[複数行選択してコピペ ] や [ セル範囲でコピペ ] はできないですね。
絞り込んだ後、何行あるか確認しないと最終行が何行目になるかわからない のでコードを書けませんからね。
 ➡複数列のコピペ(マクロルーティン#9)の列の操作ここまでのまとめ
 ➡複数行のコピペ(マクロルーティン#7)の◆解説
 ➡シート間コピペ(マクロルーティン#12)の前回の問題の解答例

・3行目は新しく出てきたコードです。
「(シートの指定).ShowAllData
シートを指示した後ピリオドで区切ってShowAllDataと書くと絞り込まれていたデータが解除されて全てのデータが表示されます。

画像6

(シートの指定)の後に範囲の指定はいりません。
例えば、
WorkSheets("記録").Range("A1").ShowAllData
と書いてしまうとエラーになりますので、気を付けてください。
(シートの指定)のすぐ後ろに「.ShowAllData」です。

★マクロを回した後、データが絞り込まれたままになっていると次の作業に支障をきたす場合がありますので元の状態のデータに戻して終わらせたいところです。

★ここからさらにフィルタボタンも非表示にする場合のコードも紹介しています。参考にされたい方は動画でもごらんください。

動画


それでは、次回マクロルーティン#18で。

この記事が気に入ったらサポートをしてみませんか?