- ベストアンサー
Excelマクロで条件成立時に列Cの値を列Aにコピーする方法
- Excelのバージョンが2007の場合、マクロを使用して同じ行の列Bの値が特定の値に完全一致する場合に、列Cの値を列Aにコピーする方法を教えてください。
- Excelのマクロを使用して、特定の条件が成立した場合に列Cの値を列Aにコピーする方法を教えてください。
- Excelのバージョン2007で、特定の条件が満たされた場合に列Cの値を列Aに自動的にコピーする方法を教えてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは! >ループを組むか・・・ とありますので、一例です。 シートモジュールですので、画面左下の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面に ↓のコードをコピー&ペーストしてマクロを実行してみてください。 Sub Sample1() Dim i As Long Application.ScreenUpdating = False For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row If Cells(i, 2) = "○" Then Cells(i, 1) = Cells(i, 3) End If Next i Application.ScreenUpdating = True End Sub ※ 余計なお世話かもしれませんが、データ量が多い場合、ループで処理するとかなりの時間を要しますので ループをしない方法の一例です。 Sub Sample2() Dim i As Long i = Cells(Rows.Count, 1).End(xlUp).Row Application.ScreenUpdating = False Columns(1).Insert With Range(Cells(2, 1), Cells(i, 1)) .Formula = "=IF(C2=""○"",D2,B2)" .Value = .Value .Copy Cells(2, 2) End With Columns(1).Delete Application.ScreenUpdating = True End Sub 参考になりますかね?m(_ _)m
お礼
有難うございます!!! データ量が少ない場合は、Sample1の方がSample2よりも処理が早くなることもあるのか、付図の例の場合、Sample1の方が処理時間が多少早かったです。 実際にはご指摘のようにデータ量が多いのでSample2が有効になるかと思います。 至れり尽せり、有難うございました。