アプリ版:「スタンプのみでお礼する」機能のリリースについて

Excel2000を使用しています。

今、データが1万件程あるExcelシートの各行の間に8行ずつ挿入したいのですが、VBAなどを教えてください。

よろしくお願いいたします。

A 回答 (5件)

EXCELの最大行は65536行です。

1万件の行に8行ずつ挿入すると9万件となり最大行数をオーバーするので希望通りにはできません。

挿入する行がもっと少なくても良いなら以下のマクロでも可能です。
マクロはALT+F11でVBE画面を開き、「VBAProjectエクスプローラのシート名右クリック」→「挿入」→「標準モジュール」で表示される画面にペーストして下さい。実行はシート画面に戻って、ALT+F8を押してマクロ一覧からマクロ名を選択して実行します。

挿入する行数はマクロに書いていますから、変更してください。またデータのあるなしはA列で判定しています。

Sub Macro4()
Dim idx As Long
Const insRows As Integer = 5 'ここに挿入する行数を書く
 Application.ScreenUpdating = False
 For idx = Range("a65536").End(xlUp).Row To 1 Step -1
  Cells(idx, 1).Offset(1, 0).Resize(insRows, 1).EntireRow.Insert shift:=xlDown
 Next idx
 Application.ScreenUpdating = True
End Sub

蛇足ですがマクロで変更したシートは元に戻せませんので、予めセーブしてから試してください。
    • good
    • 0
この回答へのお礼

お礼が遅くなり、申し訳ありませんでした。
おかげさまで、簡単にできました!!
助かりました。どうもありがとうございます。
確かに行数は多くなりますね。大変失礼致しました。
これからもどうぞよろしくお願いいたします。

お礼日時:2007/02/27 12:40

他の回答者も仰っている通り、Excel2003までは65536行までしか扱えません。



Excel2007では104万8576行まで使用できるように拡張されているので、どうしてもご希望のことをしたいのであればExcel2007にバージョンアップする必要があります。
    • good
    • 0

excelでは9万行も扱えません。

    • good
    • 0

Excelは65536件以上入りません。

先に切り分けが必要です。
モジュールに以下のコードをコピーして下さい。ただし、バックアップはとって下さいね。以前ネットで拾ったものですので自己責任で行って下さい。

Sub hoge()
Dim IROW As Long
Dim i As Long
IROW = Sheet1.UsedRange.Rows.Count
Application.ScreenUpdating = False
For i = IROW To 2 Step -1
Sheet1.Rows(i & ":" & i + 7).Select
Selection.Insert Shift:=xlDown
Next i
Application.ScreenUpdating = True
Range("A1").Select
End Sub
    • good
    • 0

Excel2000では、最大行数が約6万5千行なので、


1万件×(1+8行)=9万行は無理です
    • good
    • 0

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

このQ&Aを見た人はこんなQ&Aも見ています