• 締切済み

エクセル(EXCEL)VBAで行自動分割

エクセル(EXCEL)VBAの質問です。数万行にわたって入力されているデータがありますが、これを1000行づつに分割して、別々の新規BOOK(またはSHEET)へコピーしていきたいのですが、これを実現するVBAを教えていただけ ないでしょうか? VBAマスターの諸兄方、どうぞ宜しくお願い致します。

みんなの回答

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.1

同じBOOK内に別シート作成の例 Sub test01()   Dim ws As Worksheet, ts As Worksheet   Dim x As Long, y As Long, i As Long, z As Long   Set ts = ActiveSheet   x = ts.UsedRange.Rows.Count   y = Int(x / 1000) + IIf(x Mod 1000 > 0, 1, 0)   z = ts.UsedRange.Rows(1).Row   For i = 1 To y     Set ws = Sheets.Add     ws.Name = z & "~" & z + 999     ts.Rows(z & ":" & z + 999).Copy ws.Range("A1")     z = z + 1000   Next i End Sub 別BOOK作成の例 Sub test02()   Dim wb As Workbook   Dim ts As Worksheet   Dim x As Long, y As Long, i As Long, z As Long   Set ts = ActiveSheet   x = ts.UsedRange.Rows.Count   y = Int(x / 1000) + IIf(x Mod 1000 > 0, 1, 0)   z = ts.UsedRange.Rows(1).Row   For i = 1 To y     Set wb = Workbooks.Add     wb.Sheets(1).Name = z & "~" & z + 999     ts.Rows(z & ":" & z + 999).Copy wb.Sheets(1).Range("A1")     z = z + 1000   Next i End Sub

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 〔EXCEL VBA〕で「第1のシート」のデータを「第2のシート」に転

    〔EXCEL VBA〕で「第1のシート」のデータを「第2のシート」に転記する方法 EXCEL2003でデータが480行/65列ある第1のシート(データベース的)があります。 第1のシートの列にデータが入力されている場合のみ、第2シートの指定されたセルに検索した列の 表題と検索したデータを結合して転記したいのですが良い方法が分りません。 その際、各行毎に検索し空白列は第2のシ-トに転記せず左詰めにして転記したいのですが・・・・ 初心者に合せたご教示をお願いします。 また、Excel VBAの短期マスター法が御座いましたら合せて教示願います。 以上、宜しくお願い致します。

  • EXCEL2007 VBA 印刷タイトルには、連続した行全体または列全

    EXCEL2007 VBA 印刷タイトルには、連続した行全体または列全体を指定してください。 OS:windowsXP SP3 開発したエクセル:EXCEL2003 実行したエクセル:EXCEL2007 ファイルは2003形式で保存しています。 VBA付のEXCELマクロを起動すると、データを加工して、新しいブックにはきだします。 VBAのコードの中で、シートの印刷タイトルを設定しています。 Set s2 = Workbooks("ブック名").Sheets(”シート名”) ・ ・ ・ s2.PageSetup.PrintTitleRows = s2.Rows(1).Address & ":" & s2.Rows(4).Address こんな感じです。 excel2003では、何の問題もないのですが、excel2007で実行すると、エラーにはならないものの、作成したEXCELをプレビューすると、 印刷タイトルには、連続した行全体または列全体を指定してください。 というエラーが出て、プレビューできません。 作成したファイルの印刷設定は空欄になっていました。 With s2.PageSetup .PrintTitleRows = "$1:4$" .PrintTitleColumns = "" End With このソースもダメでした。 VBAのコードがNGならと、編集するシートにあらかじめ印刷設定を行ってみましたが、新しいブックにコピーした時点?でダメなようです。 どなたか、この問題を解決してください! 宜しくお願いします。

  • EXCEL VBA 別シートへデータ集計

    お世話になります。 EXCEL VBAを使って下記のことを実現したいです。 [やりたいこと] [データ]シートに社員情報が4人分入っています。(本当は可変です) [データ]シートに"集計"というボタンを作ってクリックするとVBAが動いて[集計]という シートにデータを集計したいのです。この[集計]シートのフォームが少し変わっていて一人に つき3行使用します。次の人はまた3行、また次の人は3行と繰り返していきたいのです。 上記やりたい事を画像にもしてみました。 上記動作を実現するVBAコードをどなたかご教授いただけませんでしょうか? 何卒よろしくお願い致します。 環境 EXCEL 2017 Win7

  • Excel VBA コードを教えて下さい!

    お世話になっています。 今回は、次の事を実現するコードを教えて頂きたいと思います。 <データ入力ブック> A1=Book1 <----- 転記先のブック名(Excel文書名) A2="AAA" この<データ入力ブック>に入力されたデータを手掛かりにしてサブディレクトリにあるBook1のSheet2!A2に"AAA"を転記し保存。 ※2004年頃を最後にAccessのVBAにも触れていません。Excelは、一度も操作したこともなく同VBAは初めてです。 ※バージョンは、Excel2007。文書は、2003等との互換モード。 厚かましいお願いとは承知していますが、教えてもらえるととっても助かります。 非常に複雑な円の配置が自動化されたので私の仕事は明日で終わります。 月曜日からは、200文書へのデータ入力。 一々、200もある文書を検索して開いて当該のセルを探して入力していたのでは手間。 そこで、<データ入力ブック>に10項目程度の入力欄を設けて入力。 <データ入力ブック>でデータの入力・訂正も管理し、そして一括更新。 そういう仕組みを日曜日の夜の3、4時間で完成したいと思っています。 そういう事情ですので、教えてもらえるととっても助かります。

  • 複数のExcelを1つのExcelに

    Excel.xlsの1シート目に、フィールドとデータが入っています。このExcelが担当者ごと複数存在します。 複数のExcelを1フォルダにまとめ、1行目はフィールド・あとは全てデータとして、1つのExcelブックの1シートへまとめることは可能でしょうか? フィールドは38列、行数はブックごと異なり、ブック名も担当者ごと異なります。 いろいろ調べたのですが、VBA初心者の為、VBAを貼り付けて実行してもうまくいきませんでした。 できれば、元ファイルは消さないよう、コピーのみ行いたいと思っています。 フォルダ名は C:\出庫依頼書 です。 どなたかご教授いただけませんでしょうか。

  • EXCEL VBA について教えてください。

    EXCEL VBA について教えてください。 条件を満たす行をコピー(挿入)さらに(数量)を分割する場合 下記のデータで , (品名 ) , (数量) , (マスタ) , (A/B) , A , B , C , D 1 , 商品1 , 1000 , 2000 , 0.5 2 , 商品2 , 3000 , 1000 , 3 3 , 商品3 , 3000 , 2000 , 1.5 4 , , , , 5 , , , , 6 , , , , このように(数量)>(マスタ)の場合に(数量)/(マスタ)分を行コピー(挿入)して , (品名 ) , (数量) , (マスタ) , (B/C) , A , B , C , D 1 , 商品1 , 1000 , 2000 , 0.5 2 , 商品2 , 1000 , 1000 , 1.0 3 , 商品2 , 1000 , 1000 , 1.0 4 , 商品2 , 1000 , 1000 , 1.0 5 , 商品3 , 2000 , 2000 , 1 6 , 商品3 , 1000 , 2000 , 0.5 さらにB列の(数量)も(マスタ)以下になるように分割する。 単に行のコピーだけなら自分でもできるのですが。。。これはさっぱりです。 どうか教えてください。

  • Excel2000とExcel2002のVBAの違いについて。

     以前、このカテゴリーにて、Excel2000におけるVBAのマクロを教えてもらったのですが、そのマクロ入力済みエクセルファイルをExcel2002へ移植したら、上手くVBAが働きません。  具体的にいうと、シート1に入力したデータの履歴を、シート2にて保存していくマクロなのですが、Excel2002では履歴のシートに上書きしていくことがあります。(たまに発生する)  Excel2000ではキチンと履歴のセルが全て残ります。  どなたか、この不具合を認識しておられる方。もしくは、対策をご存知の方がいらっしゃいましたら、教えてください。  

  • Excel関数で自動でファイルを作成する方法

    皆さん宜しくお願い致します。 現在Office2013のExcelを使っています。 どんな事がしたいのかをご説明致します。 ■手元にあるExcelファイル ・データ入力用Excel ・見積書Excel ・請求書Excel データ入力用Excelの一番下の最後の行に顧客名を入力すると 見積書Excelと請求書Excelのファイルの宛名の部分に入力したデータが反映され、 更に、開かれた見積書Excelと請求書Excelに顧客名+日付の名前がついたファイルが作成される、 といった事は関数で実現可能でしょうか? 当方VBA、マクロはよくわかりません・・・。 どうか宜しくお願い致します。

  • EXCEL VBA について教えてください。

    EXCEL VBA について教えてください。 先ほど質問した内容ですが、補足ができなかったので、再度質問しています。 条件を満たす行をコピー(挿入)さらに(数量)を分割する場合 下記のデータで , (品名 ) , (数量) , (マスタ) , (A/B) , A , B , C , D 1 , 商品1 , 1000 , 2000 , 0.5 2 , 商品2 , 3000 , 1000 , 3 3 , 商品3 , 3000 , 2000 , 1.5 4 , , , , 5 , , , , 6 , , , , このように(数量)>(マスタ)の場合に(数量)/(マスタ)分を行コピー(挿入)して , (品名 ) , (数量) , (マスタ) , (B/C) , A , B , C , D 1 , 商品1 , 1000 , 2000 , 0.5 2 , 商品2 , 1000 , 1000 , 1.0 3 , 商品2 , 1000 , 1000 , 1.0 4 , 商品2 , 1000 , 1000 , 1.0 5 , 商品3 , 2000 , 2000 , 1 6 , 商品3 , 1000 , 2000 , 0.5 さらにB列の(数量)も(マスタ)以下になるように分割する。 単に行のコピーだけなら自分でもできるのですが。。。これはさっぱりです。 どうか教えてください。 また、データの位置が変わった場合、どこを修正すればよいでしょうか? 例) 品名:P列 数量:R列 マスタ:AR列 よろしくお願いします。

  • エクセルで50行ごとに区切ったデータをシートに分割したい

    エクセルで2000行ほどある一枚のシートを50行ごとに (1-50)(51-100)(101-150)…と分割して、一つずつ 新しいブックで保存する作業があります。 今までは50行ごとにコピーして新しいブックにペーストを 繰り返してましたが、大量にきたもので困ってます。 何か自動化などできないことでしょうか? ご回答お待ちしております。 参考にシートは以下のような形式です。   A  B  C  D 1  a  1   1  1 2  b  1   2  3 3  c  2   3  4 4  d  5   6  7 5  e  7   8  9 6  f  2   3  4  7  h  5   6  7 8  g  8   9  1 9  n  2   3  4 10 n  5   6  7 ・ ・ ・ 50 j  5   6  7

プリンターの電源が切れない
このQ&Aのポイント
  • EPSON社製品で、プリンターの電源が切れない問題が発生しています。ボタンを押しても電源が切れず、困っています。
  • EPSON社製品のプリンターの電源が切れない状況に悩んでいます。電源ボタンを押しても反応がなく、解決策が知りたいです。
  • プリンターの電源がEPSON社製品で切れない問題が出ています。電源ボタンを押しても何も反応がないため、解決方法を教えてください。
回答を見る

専門家に質問してみよう