• ベストアンサー

エクセルについて教えて下さい。

エクセルのSheet1に顧客データが20000件くらいありそのデータを1000件ずつ別のシートにコピー&ペーストするマクロを作りたいのですがどうしたら良いのでしょうか?

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.3

Sub test01() Dim nm As String For i = 1 To 20000 Step 1000 nm = Worksheets.Add.Name MsgBox i MsgBox nm Worksheets("sheet1").Select Worksheets("sheet1").Range(Cells(i, 1), Cells(i + 999, 10)).Copy Worksheets(nm).Select ActiveSheet.Paste Next i End Sub 本番変更点 (1)For i = 1 To 20000 Step 1000の20000を本当の行数にする。 (2)「999, 10)).Copy」の10を最も右側にデータがある列を数字化する。A列なら1、Cは3、Gは7、jならば10です。類推でわかりますよね。 ここはその前行とは1行にしてください。 既出の回答と同じことをしていると思いますが、文字数が 少なく、印象が随分違うでしょう。コーディング規則からは既出の回答の方がよいと思いますが。

kumatin
質問者

お礼

回答ありがとうございます。 おかげで解決することができました。 勉強になりました。 本当にありがとうございました。

その他の回答 (2)

  • vbafriend
  • ベストアンサー率47% (17/36)
回答No.2

初めまして。サンプルマクロを組んでみました。参考にしてみて下さい。 もし操作方法等がご不明な場合はお知らせ下さい。ご説明させていただきます。 Sub Test() Dim i As Integer Dim myWsc As Integer Dim myCnt As Integer Dim myCounter As Integer Dim myRow As Integer myCnt = 1: myCounter = 1 Do Until myCounter = Worksheets(1).Cells(Rows.Count, 1).End(xlUp).Row myCnt = myCnt + 1 myWsc = Worksheets.Count If myWsc < myCnt Then Worksheets.Add after:=Worksheets(Worksheets.Count) End If Do myCounter = myCounter + 1 If myCounter Mod 1000 = 1 Then Exit Do Worksheets(1).Cells.Copy Worksheets(myCnt).Cells.Select Selection.PasteSpecial Paste:=xlFormats myRow = Worksheets(myCnt).Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row Worksheets(1).Rows(myCounter & ":" & myCounter).Copy Destination:=Worksheets(myCnt).Rows(myRow & ":" & myRow) Loop Loop End Sub

kumatin
質問者

補足

回答ありがとうございました。 早速やってみたのですがデータの1件目が抜けてしまいます。 初心者なのでどこをどうしたら良いのかわかりません。 何度も恐縮ですが教えて頂けないでしょうか?

  • taknt
  • ベストアンサー率19% (1556/7783)
回答No.1

まず、新しいマクロの記録とやります。 それで、コピー & ペーストの処理をして 記録を終了します。 これで、作成したマクロを修正すればOKです。

kumatin
質問者

補足

回答ありがとうございます。 その修正の部分で1000件ずつというのをどのように指定したら 良いのかがわからないのです。 もう少し詳しく教えて頂けないでしょうか

関連するQ&A

  • エクセル2010を使用 マクロで別シートにコピーを

    ご覧いただき有難うございます。 エクセル2010を使用して事務の仕事をしています。 顧客が500件弱あります。新たに取引をしてくださる業者様として取引業者様が増えたり、何年も取引がなく取引業者様として登録を削除する業者様があり、1年に何回も増減を繰り返しています。 1シート目にマスターデータとして顧客業者様名や顧客番号やその他リストが一部色付きで4行目~500行近くまで順にデータ化しております(画像の左側をご覧ください)。 それを、別シートの表形式にセルの色や文字種含めてコピー&ペーストしたいと思っております(画像の右側をご覧ください)。 マクロ初心者のため、どのようなマクロを作れば増減にも対応し色や文字種含めてコピー&ペーストできるのかわからず困っております。 詳しい方、どうぞご教授いただけないでしょうか? よろしくお願いいたします。

  • EXCELのマクロでデータをクリアしたい

    仕事でエクセルのマクロを使ってリストを作る作業があるのですが、行き詰まりました。どなたか助けて下さい。お願いします。 表を作るのには二つのマクロを使っています。 【一つめのマクロ】 1.定形のウェブページからテキストをコピーする    内容は商品名や商品番号や数量です 2.エクセルの一番左上に貼り付ける 3.するとマクロが働いて貼り付けたデータはseet1に保存されて自動的に新しいシートが用意される 4.新しいシートに別のデータで1.2.を繰り返す この作業は9回まで繰り返し、一旦エクセルを閉じます。 次に再びエクセルで 【二つ目のマクロ】を立ち上げ、現れた『リスト作成』ボタンを押すと自動的に完成の表が作られます。 最初はこの方法で快調だったのですが、行き詰まりました。 ・行き詰まりその1 一つめのマクロで九つまでコピーペーストするのをくり返して、二つ目のマクロを使うと今までのデータをすべて反映して表が作られてしまいます。うまく説明できないのですが、例えば 月曜にコピーペーストして表完成。 火曜に別のデータでコピーペーストして表を完成させると、必要ない月曜のデータも含めて表が出来てしまう。 これが一つめの困りです。 ・行き詰まりその2 二つ目の困りは、ある日別の社員が一つめのマクロを使ってコピーペーストしていたところ、誤って9つ以上シートを作ってしまったらしく、作りすぎたシートを削除しました。 そうしたらフリーズしたので、再起動してやり直ししたら、そのマクロのファイルを開くたびに、上記の失敗が現れてそれ以上のデータが作ることができなくなりました。(2つめのマクロを動かすと失敗データが上書きされるのみです) 快調な時は表が完成すると、一つめのマクロでは何のデータも残りませんでした。 このような稚拙な説明しか出来ないのですが、どなたかご教授下さい

  • ExcelのVBAで、グループ化以外を集計したい

    Excelで各シートのデータを集計する際に、 不要なデータを各シート内でグループ化して隠しています。 最終的にグループ化されていない各シートのデータを別のシートで集計したいのですが、 グループ化後に表示行全体を選択し、コピーペーストすると、 グループ化されているデータもコピーされてしまいます。 これをマクロを使って、表示されているデータのみ集計できるようにしたいのですが、 可能でしょうか? マクロの記録を使用しながら、コード書けるレベルで、 そもそも、グループ化のデータもついてきてしまうので、マクロの記録もできません。 ご教授お願いいたします。

  • Excelでマクロ実行中に画面を固定する方法

    Excelでマクロ(VBA)を実行しているとお考えください。 内容は他のシートのデータを別のシートにコピー&ペーストするとお考えください。 すると、画面がめまぐるしく動きます。 これをとめる方法をご存知の方教えていただければうれしいです。 (以前、やったことがあるんですが、忘れてしまいました) (また、検索で調べようとしたのですが、どのようなキーワードで検索すればいいのかわかりませんでした(私のキーワードでは見つかりませんでした)) よろしくお願いいたします。

  • エクセル 他のシートにデータをコピーする方法

    エクセルの操作方法について質問です。 Sheet1で作成したデータ(マクロで編集しています)を、Sheet2へデータをコピーさせたいのですが、手早くできる方法はないでしょうか? マクロで並び替えたデータを別表にしたい(Sheet1の一部のデータ)のですが、量が膨大なためコピー&ペーストの繰り返しでは時間がかかって仕方ありません。 同じシートだと、=(イコール)で簡単にできますが、シートが異なる場合でも、同様な方法はありますか?

  • エクセルのマクロは超初心者のため、難しいことは全く分かりません。

    エクセルのマクロは超初心者のため、難しいことは全く分かりません。 よろしくお願いいたします。  m(_ _)m 同じbook内に複数のsheetがあります。 そのsheetは同じ型式のデータベースなのですが、sheetによって行が違います。 そのsheetのデータを一つのシートにコピー(一番上の先頭行はデータベースの名称でコピーしたくありません) をして一覧でまとめたいのですが、方法がわかりません。 sheet数が多いので、一つずつコピー→ペーストをするのが大変なので…どうぞよろしくお願いします。

  • vbaでどう書くのですか?

    現在2000件のデータをエクセルで処理しているのですが、ある特定のデータを指定して1件(1行)ごとに印刷するのを手作業でやっています。マクロでうまく自動化できる方法はありませんか? データシートにあるデータから必要なデータを検索で探してコピーし、印刷シートの所定の行にデータをペーストして印刷する。印刷以降は問題ないのですが、コピー&ペーストまでがなかなか自動化が出来ません。 以上よろしくお願いいたします。

  • エクセル2007のコピー&ペーストについて

    エクセル2007のコピー&ペーストについて いつもお世話になります。 例えばAシートでSUMで作った計算式を同じシート内でコピー&ペーストするのは何の問題も無いのですが別の新しいBシートにコピー&ペーストをすると数値のみがコピーされ計算式がコピーされません。数式も含めて別のシートにコピーするにはどうしたら良いでしょうか。ご教授下さい。

  • エクセル2000のマクロについて教えてください。

    実は、今日会社で失敗したのですが、エクセルのマクロ実行をしたら、エラー で実行中断となってしまいました。 ワークシートから別のワークシートへコピー&ペーストして印刷というマクロを組みたかったのですが、エラー内容は、 Active Cell Offset(-7,-14).Range("A1:AN15")selectです。 元のワークシートのセル位置と、コピーするワークシートのセル位置は同じ場所でないといけないのでしょうか? セルは同じ数とっているはずなのですが。何回かやってみて、 へんな場所にペーストされて、印刷までは出来たこともあるのですが、何がちがうのだろー。。解らない(;;) だれか教えてください!!!

  • エクセル コピー ペースト 形式 すべて  マクロ

    エクセルの同じシート内で、セルをコピーし、他のセルにペーストするマクロを利用しております。 Worksheets("data").Range("A45").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False しかし、このマクロでは、ペーストする際に、「形式を選択して貼り付け」の「値」のみが貼り付けられてしまいます。 数式を残した状態でペーストしたいので、「すべて」の状態で貼り付け希望です。 なお、このシートは表示しない状態で使用するため、シートを選んでセルを選択してコピーする方法はできません。(マクロでエラーとなってしまいます。) どうか、よろしくお願いします。

専門家に質問してみよう