プロが教えるわが家の防犯対策術!

いつもお世話になっております。
現在、チェックシートを作成しており、入力規則で”○”を選択した項目を別のセルに上から順番にコピーするマクロを考えていますが、まったく思いつきません。

 A          B       C    
1営業は好きだ            営業は気合だ   
2営業は気合だ      ○     営業は数だ
3営業は口八丁だ     
4営業は数だ       ○

と、したいのですが、どなたか、ご教示願います!

A 回答 (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
    • good
    • 2
この回答へのお礼

keirika様
早速のご回答誠にありがとうございます。
丁寧なサンプルまでご用意いただき、感謝しております。

お礼日時:2008/05/17 10:24

マクロという言葉を思いついて、聞いている状態のようだ。

丸投げだが行数が少なくてできるので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の勉強も苦労は要らないのだが。
    • good
    • 0
この回答へのお礼

imogasi様
このたびは大変お手数おかけしました。
お答えいただいたマクロを辞書などで調べながら、意味を確認しておきます。
ありがとうございました。

お礼日時:2008/05/17 10:27

B列を上から順に見ていき、


○だったらその行の左隣(A列)のセルの値を、
C列のデータが入力されている最後のセルの下のセルに書き込む、
ということを、A列のデータがなくなるまで繰り返せば良いだけです。

どの程度マクロの知識があるのでしょうか?
「まったくマクロが解らないから、誰か作ってちょうだい」ということでしょうか?
    • good
    • 1
この回答へのお礼

higekuman様
いつもありがとうございます。
お答えいただいた考え方で十分です。
ありがとうございました。

お礼日時:2008/05/17 10:19

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています