見出し画像

マクロルーティン#23(絞り込まずに指定のシートにまとめる!)

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

皆さんこんにちは。
今回はフィルタをかけずに、作業シートから必要なデータだけを別のシートにまとめる方法をご紹介します。
★フィルタをかけて別シートにまとめる方法はマクロルーティン#16でご紹介しています。

画像3

上の図のように[記録]シートには販売した商品の内容を一行づつ入力しています。
B列の種類が "美容″ のものだけを[美容]シートに下図のようにまとめたいと思っています。

画像3

◆目標
B列の[種類]が「美容」だったら行全体をコピーして「美容」シートに2行目から順に貼り付けていく。

◆書くコード(第一段階)

①B2の値が「美容」だったら
②行全体をコピーする
 ↓ 
①If Worksheets("記録").Range("B2").Value = "美容" Then
② 
Worksheets("記録").Rows(2).Copy
  (美容シート2行目に貼付け)
 End If

この部分は大丈夫ですね。
If文の書き方 ➡ マクロルーティン#15
複数のシートを操作する場合 ➡ マクロルーティン#11

★シートを2枚扱うので、シート名から指定して書きます。

◆書くコード(第二段階)

全部の行に適用させる。
 ↓
For i = 2 To 10
 If Worksheets("記録").Range("B" & i).Value = "美容" Then
  Worksheets("記録").Rows(i).Copy
  (美容シート2行目から順に貼付け) 
 End If
Next

この部分も大丈夫ですね。
For Next の書き方 ➡ マクロルーティン#18
For Next と If文 ➡ マクロルーティン#20

★2行目の値が「美容」だったら、コピーする行も2行目ですよね。
行をコピーする書き方覚えてますか?
・Worksheets("記録").Rows(行番号).Copy
思い出してくださいね。(マクロルーティン#6

◆今日のまとめ

画像3

★今までのレッスンの内容をつかって書けるマクロの一部でした。
次回、マクロルーティン#24 は
第三段階(美容シート2行目から順に行貼付け)の部分をやっていきます。
お楽しみに!

いいなと思ったら応援しよう!