• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:条件成立時に列Cの値を列Aにコピーしたい)

Excelマクロで条件成立時に列Cの値を列Aにコピーする方法

このQ&Aのポイント
  • Excelのバージョンが2007の場合、マクロを使用して同じ行の列Bの値が特定の値に完全一致する場合に、列Cの値を列Aにコピーする方法を教えてください。
  • Excelのマクロを使用して、特定の条件が成立した場合に列Cの値を列Aにコピーする方法を教えてください。
  • Excelのバージョン2007で、特定の条件が満たされた場合に列Cの値を列Aに自動的にコピーする方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.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

yukisaka
質問者

お礼

有難うございます!!! データ量が少ない場合は、Sample1の方がSample2よりも処理が早くなることもあるのか、付図の例の場合、Sample1の方が処理時間が多少早かったです。 実際にはご指摘のようにデータ量が多いのでSample2が有効になるかと思います。 至れり尽せり、有難うございました。

関連するQ&A

専門家に質問してみよう