すみません。若輩者でどなたか教えてください。
エクセルvbaを使用して下記表がから I列 の数値を参照して、
数値分の行コピー追加したいです。
A B C D E F G H I
1 名前1 名前2 100 200 300 400 500 2
2 名前1 名前2 10 20 30 40 50 5
2 名前1 名前2 -80 -160 -240 -320 -400 8
4 名前1 名前2 -170 -340 -510 -680 -850 1
5 名前1 名前2 200 300 400 500 600 4
6 名前1 名前2 400 500 600 700 800 6
自分の力では、うまく出来なくお力添えをお願いします。
宜しくお願い致します。
No.2ベストアンサー
- 回答日時:
こんにちは!
一例です。
オーソドックスにやってみました。
尚、データは1行目からあるとします。
Sub Sample1()
Dim i As Long, k As Long
For i = Cells(Rows.Count, "A").End(xlUp).Row To 1 Step -1
If Cells(i, "I") > 0 Then
Rows(i + 1 & ":" & i + Cells(i, "I")).Insert
For k = 1 To Cells(i, "I")
Range(Cells(i, "A"), Cells(i, "I")).Copy Cells(i + k, "A")
Next k
End If
Next i
End Sub
※ 上記マクロを実行すると、I列の数値より1行多くコピー&ペーストすることになるのですが、
これで良いのでしょうかね?
もしI列の行数分だけの行数にしたい場合は↓のコードにしてみてください。
Sub Sample2()
Dim i As Long, k As Long
For i = Cells(Rows.Count, "A").End(xlUp).Row To 1 Step -1
If Cells(i, "I") > 1 Then '//★//
Rows(i + 1 & ":" & i + Cells(i, "I") - 1).Insert
For k = 1 To Cells(i, "I") - 1 '//★//
Range(Cells(i, "A"), Cells(i, "I")).Copy Cells(i + k, "A")
Next k
End If
Next i
End Sub
※ 「★」の行で行数合わせをしています。m(_ _)m
tom04さんありがとうございます。
後者のvbaをありがたく頂きました!!
ありがた序でにもう一つすみません。。。教えてください。
一行目は項目になり、3行目(エクセルで見た)が数値を置き換えても、エラーになりまして。。。
エラーコード13なんです。。。何か想定外な事をしてしまいましたでしょうか。
教示頂けますと幸いです。
No.3
- 回答日時:
No.2です。
>一行目は項目になり、3行目(エクセルで見た)が数値を置き換えても、エラーになりまして。。。
1行目は項目行でデータは2行目以降にある!というコトですかね?
そしてエラーに関して、
I列に文字列は含まれていませんか?
I列が数値の場合は問題なく動くと思うのですが・・・
↓のコードにしてみてください。
Sub Sample3()
Dim i As Long, k As Long
For i = Cells(Rows.Count, "A").End(xlUp).Row To 2 Step -1 '//A列最終行から2行目まで★//
If Cells(i, "I") > 1 Then
Rows(i + 1 & ":" & i + Cells(i, "I") - 1).Insert
For k = 1 To Cells(i, "I") - 1
Range(Cells(i, "A"), Cells(i, "I")).Copy Cells(i + k, "A")
Next k
End If
Next i
End Sub
※ 一つ気になるのが
>3行目(エクセルで見た)が数値を置き換えても・・・
の部分で、3行目からデータがあるのだとすると、コード内の「★」の行の
「2」を「3」に変更してみてください。
A~I列すべてをコピー&ペーストしていますが、I列は必要ないように思えます。
その場合は
>Range(Cells(i, "A"), Cells(i, "I")).Copy Cells(i + k, "A")
を
>Range(Cells(i, "A"), Cells(i, "H")).Copy Cells(i + k, "A")
に変更してください。m(_ _)m
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 列と行の名前(重複あり)が交差するセルに、データを入力したい 2 2022/06/25 22:42
- Visual Basic(VBA) 列と行の名前(重複あり)が交差するセルに、データを入力したい 3 2022/06/12 11:17
- Excel(エクセル) VBA セルの値と同じ名前のシートにデータを貼り付けするやり方を教えてください 2 2022/05/17 16:26
- Visual Basic(VBA) VBA 連続する名前ごとに集計 3 2022/05/21 18:24
- Excel(エクセル) エクセルの数式で教えてください。 2 2023/02/10 17:07
- Visual Basic(VBA) 列と行の名前(重複あり)が交差するセルに、データを入力したい 1 2022/06/18 21:20
- Excel(エクセル) マクロ/VBAについて教えてください。 10 2022/05/27 12:59
- Excel(エクセル) Excel複数シートから日付と文字を取り出して日付順に並べたいです 6 2022/06/06 13:23
- Java java 次の機能を有するメソッドを自クラスに作成し、実装したいです。 機能 名前判定機能 →名前が 3 2022/06/16 16:08
- Excel(エクセル) エクセルで複数条件の重複チェック 3 2022/05/17 13:57
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Worksheets メソッドは失敗しま...
-
vba 2つの条件が一致したら...
-
Cellsのかっこの中はどっちが行...
-
【VBA】2つのシートの値を比較...
-
データグリッドビューの一番最...
-
Excelで、あるセルの値に応じて...
-
マクロ 最終列をコピーして最終...
-
DataGridViewに空白がある場合...
-
VBAで、特定の文字より後を削除...
-
rowsとcolsの意味
-
B列の最終行までA列をオート...
-
VBAを使って検索したセルをコピ...
-
VBAで、離れた複数の列に対して...
-
マクロ 関数を使った抽出でエラ...
-
IIF関数の使い方
-
VBAで重複データを確認したい
-
Changeイベントでの複数セルの...
-
VBAのFind関数で結合セルを検索...
-
エクセル アクティブセルから...
-
文字列の結合を空白行まで実行
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Worksheets メソッドは失敗しま...
-
Excelで、あるセルの値に応じて...
-
B列の最終行までA列をオート...
-
vba 2つの条件が一致したら...
-
Cellsのかっこの中はどっちが行...
-
VBAを使って検索したセルをコピ...
-
VBAのFind関数で結合セルを検索...
-
文字列の結合を空白行まで実行
-
IIF関数の使い方
-
【VBA】2つのシートの値を比較...
-
マクロ 最終列をコピーして最終...
-
Changeイベントでの複数セルの...
-
VBA 何かしら文字が入っていたら
-
URLのリンク切れをマクロを使っ...
-
エクセルVBAにて =A1=B1とすれ...
-
VBAでのリスト不一致抽出について
-
データグリッドビューの一番最...
-
マクロについて。S列の途中から...
-
VBA UserFormからの転記で
-
targetをA列のセルに限定するに...
おすすめ情報
説明が足らずすみません。
A列はナンバリングしただけです。(癖で振ってしまいます。)
行NOをつけてみました。
行NO A列 B列 C列 D列 E列 F列 G列 H列 I列
1 1 名前1 名前2 100 200 300 400 500 2
2 2 名前1 名前2 10 20 30 40 50 5
2 2 名前1 名前2 -80 -160 -240 -320 -400 8
4 4 名前1 名前2 -170 -340 -510 -680 -850 1
5 5 名前1 名前2 200 300 400 500 600 4
6 6 名前1 名前2 400 500 600 700 800 6
上記 I列 の値を参照し、その値分の行数を 直ぐ下へ追加ペーストしたいです。
宜しくお願い致します。