• ベストアンサー

Excelで行の挿入を繰り返し行う

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

  • nene99
  • お礼率78% (152/194)

質問者が選んだベストアンサー

  • ベストアンサー
  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.3

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 蛇足ですがマクロで変更したシートは元に戻せませんので、予めセーブしてから試してください。

nene99
質問者

お礼

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

その他の回答 (4)

  • ham_kamo
  • ベストアンサー率55% (659/1197)
回答No.5

他の回答者も仰っている通り、Excel2003までは65536行までしか扱えません。 Excel2007では104万8576行まで使用できるように拡張されているので、どうしてもご希望のことをしたいのであればExcel2007にバージョンアップする必要があります。

  • ishiwaru
  • ベストアンサー率19% (70/356)
回答No.4

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

  • ysko614
  • ベストアンサー率31% (103/329)
回答No.2

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

  • ASIMOV
  • ベストアンサー率41% (982/2351)
回答No.1

Excel2000では、最大行数が約6万5千行なので、 1万件×(1+8行)=9万行は無理です

関連するQ&A

  • Excel VBA で行挿入

    Excel2002を使っています。 質問させていただきます。 VBAで行を挿入したいのですが、たとえば以下のようにデータがあります。  A列  東京  東京  東京  大阪  大阪  名古屋 予めデータはソートされています。 この状態で、東京と大阪の間、大阪と名古屋の間に1行挿入(空行)したいです。 コマンドボタンをクリックしたときの動作の一つとして実現したいのですが方法がわかりません。 ご指導いただければ幸いです。

  • エクセルの行挿入について

    こんにちわ。お世話になります。 エクセルでシート1に1,000行、シート2に1,000行のデータを作成し、シート1のデータの上にシート2のデータを貼り付けて連続したデータを作っているのですが、データを貼り付けるたびに1,000行の行挿入をしてからデータを貼り付けています。いちいち行挿入をせずにもっと簡単にできる方法があれば教えていただけませんか。お願いします。

  • EXCELで行挿入、これは一体何故ですかねえ

    Windows XPでEXCEL2000を使用していますが友人のパソコンのEXCELファイル(友人もW-xpでEXCELも2000)を私のパソコンにコピーして表の中で行挿入をしたいのですが「データの消失を防ぐために、空白でないセルを空白でないセルをワークシートの外にシフトすることは出来ません」と云うメッセージが出てきて行挿入できません。普通は挿入タブをクリックして「行」をクリックすれば自動的に任意の箇所に行挿入できるのですが、何かの設定不足でしょうか。全く挿入できません。どなたか教えてください。

  • エクセル 行の挿入について

    EXCEL2002を使用しています。 行を挿入しようとしましたら、次のようなエラーメッセージがでました。 『データの消失を防ぐため、空白でないセルをワークシートの外にシフトすることはできません。 Ctrl+Endキーを押して最後の空白でないセルに移動し、そのセルとデータを削除、またはクリアしてください。 その後、セルA1を選択し、ブックを保存して最後のセルをリセットしてください。 または、データを新しい位置に移動し、もう一度行ってください』と。 データを入力した後、入力漏れに気がついたので、行の途中に入力漏れしたデータを挿入したいのですが、どのようにすれば、行の挿入ができるでしょうか。 (例えば、1行目から100行目までデータを入力した後に、10行目に新たにデータを挿入したい場合) よろしくご教示願います。 なお、OSはウィンドウズXPです。

  • 特定の条件の時に行を挿入したい

    EXCEL2000使っています。A列データがあるとして、A3セルに特定の数字(例えば1)があるときは、その上の行、このときは 2行に1行挿入したいのですが、各行ごとに挿入するのは大変なので、簡単に、できるだけ一度に挿入する方法はないですか?

  • excel「行の挿入」するとなぜか最終行に挿入されてしまう

    昨日、 ”excel2000の表で、ふつうにただ1行挿入したいだけなのですが、「行の挿入」を選ぶと 「データの消失を防ぐ為、空白でないセルをワークシートの外にシフトすることは出来ません」 とポップアップが出て、操作できません。” という質問をし、 ”全ての行を使い切ってしまっている、あるいは最終行(65536行目)のどこかのセルにデータが入っている。そのデータを消せばよい。” と教えて頂き、確認したところ最終行まで罫線がびっしり引かれていることに気付き、そんなにいらないので400行目以降の罫線はすべてクリアーで消去しました。 それで一件落着と思ったのですが、その後1行 行(罫線)を挿入すると、なぜか途中を通り越して最終行に罫線がはみ出てしまい、しばらくしてもう一行挿入しようとするとまた 「データの消失を防ぐ為、空白でないセルをワークシートの外にシフトすることは出来ません」 となってしまいます。私は400行目以内ですべて作業を完結させたいのに・・・。 どうすればよろしいでしょうか。

  • Excelの行挿入で

    Excelのシートにデータがつまっているのですが(これから新しく表を作るということではないということです。)、行の挿入をしたいのです。 このとき、行を選択して、右クリックで「挿入」を選べば挿入自体はできます。 しかし、 既にある表は、行が、A列とB列が結合されているのですが、 単に上記のように挿入すると、 A列B列が分かれている行が挿入されてしまいます。 新しく挿入された行のA列とB列を選択して、「セルの書式設定」の「配置」でセルを結合させてもいいのですが、 いちいちそうしなくても 挿入時点ですでに結合されているようにするにはどうすればよいですか。 (Excel2000)

  • エクセル2003~行挿入できない~

    すみませんが、お分かりの方いらっしゃいましたら教えてください。 エクセル2003(XP)を使用しております。 作成中の表に、行を挿入したいと思い、実行すると、 「データの消失を防ぐため、空白でないセルをワークシートの外にシフトすることはできません」 と表示されエラーが出ます。 どのようにすれば、行挿入が可能になるでしょうか。 お手数お掛け致しますが、よろしくお願い致します。

  • excel2000 行の挿入が出来ない

    excel2000の表で、ふつうにただ1行挿入したいだけなのですが、「行の挿入」を選ぶと 「データの消失を防ぐ為、空白でないセルをワークシートの外にシフトすることは出来ません」 とポップアップが出て、操作できません。 どうすればできるでしょうか?

  • エクセルの行挿入とコピー

    よろしくお願いいたします。     A    B   C    D 1  123  123   123   123 2   444  555   666  777 3   890   890   890   890 4   000   000   000   000 上のようなエクセルの表(Excel2003)があるとします。 この表の1行目と2行目の間に、1行目のデータを9行コピーするための方法を教えてください。 実行後は1~10行目は全く同じデータ、11~20行目に2行目のデータがあり、同じように末尾行まで繰り返すということです。 自分でも色々と検討してみましたが、なかなかうまくいきません。 行挿入だけであればできるのですが、コピーまで同時に実行する必要があります。 元の表は3000行ほどあるため、とてもじゃありませんが手動では実行できませんので、マクロで末尾行(Excel2003の65000行)まで自動実行する方法を教えていただきたいのです。 すみませんがよろしくお願いいたします。

専門家に質問してみよう