質問: エクセルのマクロでセルの内容によって行を挿入 エクセルのマクロでこんなことは出来るのでしょうか。 a b 1 東京 1 2 大阪 3 3 札幌 2 4 福岡 1 5 横浜 2 上記のような表をマクロの処理で下記のように書き換えることは出来るでしょうか。 a b 1 東京 1 2 大阪 1 3 大阪 1 4 大阪 1 5 札幌 1 6 札幌 1 7 福岡 1 8 横浜 1 9 横浜 1 b列に入ってる数字の分だけ行を作りたいのです。 (b列の数字マイナス1行を挿入する形になります) 書き換えがややこしければ、別の場所に作り直してもかまわないので お願いします。
回答: sub kakikae() ' 初期設定 dim a() as string,b() as integer,counter as integer, _ i as integer,j as integer,gyou as integer redim a(0),b(0) ' データの取得 do ' b行が空の場合はループから出る a(0)=range("b2").offset(counter,0) b(0)=range("c2").offset(counter,0) if a(0)="" then exit do end if ' 配列の拡張 counter=counter+1 redim preserve a(counter),b(counter) ' データ格納 a(counter)=a(0):b(counter)=b(0) doevents loop ' 書き込み for i=1 to counter for j=1 to b(i) ' 行番号 gyou=gyou+1 range("a1").offset(gyou,0)=gyou ' a,b range("b1").offset(gyou,0)=a(i) range("c1").offset(gyou,0)=1 doevents next j next i end sub