プロが教える店舗&オフィスのセキュリティ対策術

いろいろなサイトで調べたのですが、方法が見つからずご質問させて頂きます。
Excelシートの中で値が入っている行まで順番に読み、A列のセルの値が'東京'かつB列の値が'2'以上の行があった場合に、その行をB列の値の数だけその行の下にコピーで挿入したいのですが、どのようなマクロにすれば良いかご教授頂けないでしょうか?

例)
セルA1='東京' セルB1='3' の場合、
----------------------------------
セルA1='東京' セルB1='1'
セルA1='東京' セルB1='1'
セルA1='東京' セルB1='1'

※セルB1を値の数だけ分割し、なおかつ値を'1'にする
※分割が終わったら、分割元の行を削除する
※その他の列の値はそのままコピーする

以上、宜しくお願い致します!

A 回答 (1件)

こんな感じでしょうか?


コピー挿入が終わったら、元の行を削除するのではなく、1行少なく行挿入をしていますが、同じことですよね?

Sub test01()
x = ActiveSheet.Cells(ActiveSheet.Rows.Count, "A").End(xlUp).Row
For i = x To 1 Step -1
If Cells(i, 1) = "東京" And Cells(i, 2) > 1 Then
b = Cells(i, 2)
Cells(i, 2) = 1
For n = 1 To b - 1
Rows(i + 1).Insert Shift:=xlDown
Rows(i).Copy
Rows(i + 1).PasteSpecial
Application.CutCopyMode = False
Next n
End If
Next i
End Sub
    • good
    • 0
この回答へのお礼

merlionXX さん

早速ご回答頂きありがとうございました!
教えて頂いた構文で対応できました!
本当にありがとうございました!

お礼日時:2006/07/04 15:42

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