• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBAでの行挿入について)

VBAでの行挿入について

このQ&Aのポイント
  • Excel VBAを使用して特定の条件に合った行を挿入する方法について説明します。
  • 顧客データが格納されたExcelシートにおいて、「BC列」に値がある場合や「BJ列」に値がある場合に、1行下へ空白行を挿入し、挿入した行に特定の値を入力する処理を行います。
  • これにより、手作業で行う必要があった処理を効率的に自動化することができます。Excel VBAの基礎知識が必要ですが、初心者でも理解しやすい内容です。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.2

おっとうっかり。失礼しました。 ところで。各グループ毎「最終行」のBJ列セル、BC列セルのみチェック対象ということでいいのですね。 sub macro1r1()  dim r as long  for r = range("A65536").end(xlup).row to 2 step -1  if cells(r, "A") <> cells(r+1, "A") then   if cells(r, "BJ") <> "" then    rows(r).copy    rows(r+1).insert    cells(r+1, "Y") = "送料"    cells(r+1, "AC") = cells(r+1, "BJ").value    cells(r+1, "AB") = 1   end if   if cells(r, "BC") <> "" then    rows(r).copy    rows(r+1).insert    cells(r+1, "Y") = "ポイント利用"    cells(r+1, "AC") = cells(r+1, "BC").value    cells(r+1, "AB") = 1   end if  end if  next r  application.cutcopymode = false end sub

mitsunori32
質問者

お礼

完璧です! 理想の処理になりました! 本当に助かりました。素晴らしいご回答ありがとうございます!!

その他の回答 (1)

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

BCとBJの共に値がある場合の処理がチョイと不明瞭ですが,適宜応用してください。 sub macro1()  dim r as long  for r = range("A65536").end(xlup).row to 2 step -1   if cells(r, "BJ") <> "" then    rows(r).copy    rows(r+1).insert    cells(r+1, "Y") = "送料"    cells(r+1, "AC") = cells(r+1, "BJ").value    cells(r+1, "AB") = 1   end if   if cells(r, "BC") <> "" then    rows(r).copy    rows(r+1).insert    cells(r+1, "Y") = "ポイント利用"    cells(r+1, "AC") = cells(r+1, "BC").value    cells(r+1, "AB") = 1   end if  next r  application.cutcopymode = false end sub

mitsunori32
質問者

補足

ありがとうございます! ほぼうまくいきそうなのですが、 1つだけ訂正をお願い致します。 >但し挿入する位置は、顧客情報の一番下(1行の場合は2行目、2行の場合は3行目と)です。 こちらの部分は、A列の顧客番号でくくったとして、その番号の次の行という意味です。 例) A                          BC 1111 →ああああ                100  1111 →ああああ                100 <この間に挿入が理想です。 1112 1113 申し訳ございませんが、ご教授お願い致します。

関連するQ&A