- ベストアンサー
VBAでの行挿入について
- Excel VBAを使用して特定の条件に合った行を挿入する方法について説明します。
- 顧客データが格納されたExcelシートにおいて、「BC列」に値がある場合や「BJ列」に値がある場合に、1行下へ空白行を挿入し、挿入した行に特定の値を入力する処理を行います。
- これにより、手作業で行う必要があった処理を効率的に自動化することができます。Excel VBAの基礎知識が必要ですが、初心者でも理解しやすい内容です。
- みんなの回答 (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
その他の回答 (1)
- keithin
- ベストアンサー率66% (5278/7941)
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
補足
ありがとうございます! ほぼうまくいきそうなのですが、 1つだけ訂正をお願い致します。 >但し挿入する位置は、顧客情報の一番下(1行の場合は2行目、2行の場合は3行目と)です。 こちらの部分は、A列の顧客番号でくくったとして、その番号の次の行という意味です。 例) A BC 1111 →ああああ 100 1111 →ああああ 100 <この間に挿入が理想です。 1112 1113 申し訳ございませんが、ご教授お願い致します。
お礼
完璧です! 理想の処理になりました! 本当に助かりました。素晴らしいご回答ありがとうございます!!