マクロルーティン#23(絞り込まずに指定のシートにまとめる!)
シートから必要なデータだけを別シートにまとめる
皆さんこんにちは。
今回はフィルタをかけずに、作業シートから必要なデータだけを別のシートにまとめる方法をご紹介します。
★フィルタをかけて別シートにまとめる方法はマクロルーティン#16でご紹介しています。
上の図のように[記録]シートには販売した商品の内容を一行づつ入力しています。
B列の種類が "美容″ のものだけを[美容]シートに下図のようにまとめたいと思っています。
◆目標
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)
◆今日のまとめ
★今までのレッスンの内容をつかって書けるマクロの一部でした。
次回、マクロルーティン#24 は
第三段階(美容シート2行目から順に行貼付け)の部分をやっていきます。
お楽しみに!