- ベストアンサー
選択した項目を上から順番にコピーするマクロ
いつもお世話になっております。 現在、チェックシートを作成しており、入力規則で”○”を選択した項目を別のセルに上から順番にコピーするマクロを考えていますが、まったく思いつきません。 A B C 1営業は好きだ 営業は気合だ 2営業は気合だ ○ 営業は数だ 3営業は口八丁だ 4営業は数だ ○ と、したいのですが、どなたか、ご教示願います!
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
チェックシートをSheet1、抽出先のシートをSheet2とします。 Sub Sample() Dim Data As Range Dim i As Long Dim j As Long Set Data = Sheets("Sheet1").Range("A1").CurrentRegion j = 1 For i = 1 To Data.Rows.Count If Data.Cells(i, 2) = "○" Then Sheets("Sheet2").Cells(j, 1) = Data.Cells(i, 1) j = j + 1 End If Next Set Data = Nothing End Sub
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17069)
マクロという言葉を思いついて、聞いている状態のようだ。丸投げだが行数が少なくてできるので1例を。 例データ A列 B列 C列 1営業は好きだ ○ 1営業は好きだ 2営業は気合だ - 4営業は数だ 3営業は口八丁だ ○ 3営業は口八丁だ 4営業は数だ ○ B列に1->4->3行の順で○を入れた。 結果 上記C列の通り ーー コードはSheet1などのChangeイベントに Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 2 And Target = "○" Then d = Range("c65536").End(xlUp).Offset(1, 0).Select Selection = Target.Offset(0, -1) End If End Sub イベント、Target.Column 、d = Range("c65536").End(xlUp).Offset(1, 0).Select、).Offset(1, 0). などがすぐ判るかな。すぐ判るようなものならVBAの勉強も苦労は要らないのだが。
お礼
imogasi様 このたびは大変お手数おかけしました。 お答えいただいたマクロを辞書などで調べながら、意味を確認しておきます。 ありがとうございました。
- higekuman
- ベストアンサー率19% (195/979)
B列を上から順に見ていき、 ○だったらその行の左隣(A列)のセルの値を、 C列のデータが入力されている最後のセルの下のセルに書き込む、 ということを、A列のデータがなくなるまで繰り返せば良いだけです。 どの程度マクロの知識があるのでしょうか? 「まったくマクロが解らないから、誰か作ってちょうだい」ということでしょうか?
お礼
higekuman様 いつもありがとうございます。 お答えいただいた考え方で十分です。 ありがとうございました。
お礼
keirika様 早速のご回答誠にありがとうございます。 丁寧なサンプルまでご用意いただき、感謝しております。