- ベストアンサー
エクセル VBA
A列に番号が1から順番にコード番号がはいっています。所々欠番が合ったりするのでそれをマクロで自動に行を挿入したいのですができますでしょうか? 文章だとうまくいえないので、 A B C 1 〇×商品 10,000 2 AA商品 30,000 4 BB商品 25,000 6 ZZ商品 20,000 を 1 〇×商品 10,000 2 AA商品 30,000 3 4 BB商品 25,000 5 6 ZZ商品 20,000 といった感じに欠番を追加してその行の右側すべてに空白のセルを追加する方法があれば教えて下さい。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
Sheet1にデータが入力されていると仮定します。 マクロは以下の通りです Sub aaa() Dim i As Integer i = 0 Do Until Worksheets("Sheet1").Range("a1").Offset(i, 0).Value = "" Worksheets("Sheet1").Range("a1").Offset(i, 0).Activate If ActiveCell.Value <> ActiveCell.Row Then Rows(ActiveCell.Row).Insert Worksheets("Sheet1").Range("a1").Offset(i, 0).Value _ = ActiveCell.Row End If i = i + 1 Loop End Sub EXCEL2003使用 動作確認はしていますが、上手く動作しない場合はご容赦ください。
その他の回答 (3)
- imogasi
- ベストアンサー率27% (4737/17069)
A列を1から順番にする方法 Sub test02() d = Range("A65536").End(xlUp).Row j = 1 Cells(1, 1).Activate cmp: If ActiveCell = Cells(d, "A") Then Exit Sub If j = ActiveCell Then GoTo p1 If j < ActiveCell Then GoTo p2 p1: j = j + 1 ActiveCell.Offset(1, 0).Activate GoTo cmp p2: ActiveCell.EntireRow.Insert ActiveCell = j j = j + 1 ActiveCell.Offset(1, 0).Activate GoTo cmp End Sub 1からの1づつアップする独立カウントのjと、現実のセルのA列の番号を、マッチングのロジックで、番号の少ないほうをA列にセットする(独立カウントの方は行挿入してそこへjをセット)ロジックになっています。
お礼
回答ありがとうございました。解決できました。
- aco_michy
- ベストアンサー率25% (70/277)
>素人なんで全く分かりません。 for~nextループ知っていますか?
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
A列を走査して、A列の番号の後ろに欠番を補って、 A列で並び替えるのが簡単だと思います。(そういうマクロを作る)
補足
さっそくの回答ありがとうございます。もしよろしければモジュールに書くコードを教えていただけないでしょうか?素人なんで全く分かりません。
お礼
回答ありがとうございました。無事解決しました。