マクロルーティン#16(指定のシートにまとめる)
シートから必要なデータだけを別シートにまとめる
皆さんこんにちは。
今回は作業シートから必要なデータだけを別のシートにまとめる方法をご紹介します。
(関連動画:【マクロルーティン8】シートの中で必要なデータのみ別のシートにまとめる方法)
その前にマクロルーティン#15の問題の解答例は以下のとおりです。
C4の値が一万円以下のとき、D4に「一万円以下」と入力するマクロ
ひとこと:不等号の向きを注意しましょう!間違えると逆の値を入れかねません。
それでは、今回のレッスン です。
上図のように[記録]シートには販売した商品の内容を一行づつ入力しています。
B列の種類が "美容″ のものだけを[ピックアップ]シートに下図のようにまとめたいと思っています。
◆目標
[記録]シートで種類を ”美容” で絞り込み、表全体をコピーして[ピックアップ]シートに値貼り付けする。
★これを全部やると新しいコードがたくさん出てきますので、今回は絞り込みのところまでにします。
◆書くコード
◆解説
・Worksheets("記録").Range("A1")
ここまではいいですね。
記録シートのセルA1を取得しています。
・次に「.AutoFilter」というメソッドがあります。ここまでで実行するとセルA1を含む表にフィルタボタンが表示されます。
マニュアルでも表のどこかを選択した状態で[データ]→[フィルタ]をクリックするとフィルタボンが表示されるので、理解が早いと思います。
・「.AutoFilter」の後ろにはどのように絞り込むのかを支持してあげているだけです。
Field:=2 ➡ (その表の)2番目の列ですよ。
Criteria1:="美容" ➡ 絞り込む値は”美容”ですよ。
(条件が2つあるときはCriteria2がでてきます。)
★FieldとCriteria1はカンマで区切ります。
★メソッドの後ろに半角スペースを入れて、条件を「:=」を使って書く方法は値貼り付けでも出てきました。(マクロルーティン#14)このときは1か所でしたね。ページを開いて確認してみてください。
値貼り付けのときも、「.PasteSpecial~以降は覚えてしまいましょう」と書きましたが、
今回も .AutoFilter~以降 のコードは覚えてしまったほうが早いです。
覚えるといっても、検索すればすぐ答えは出てくるので”雰囲気”を覚えてほしいです。「.AutoFilter 使うときは条件書きたいから後ろに:= こんなの使うんだったよな~」という感じです。
これだけでだいぶコードを書くのが早くなること間違いなしです!
◆図解
◆問題
上図のように「記録」シートにデータが入っています。C列の金額が10000以上のデータのみに絞り込むマクロを作って、実行してみてください。
補足)一万円以上の書き方は
>= 10000
解答はマクロルーティン#17で。
関連動画
この記事が気に入ったらサポートをしてみませんか?