エクセルで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
No.2ベストアンサー
- 回答日時:
> エクセルで50行ごとに区切ったデータをシートに分割したい
> …と分割して、一つずつ新しいブックで保存する作業があります。
「ブック」と「シート」のどちらか不明瞭ですが、アクティブシートを50行毎に
新しいブックにコピーするコードです。
アクティブブックと同じフォルダに保存されます。
Option Explicit
Sub Sample()
Dim Wb As Workbook
Dim rngData As Range
Dim i As Long
Dim strBasename As String
Dim strFilename As String
Dim lng1stRow As Long
Dim lngLstRow As Long
Const STEP_ROWS_COUNT = 50 '50 行
Set rngData = ActiveSheet.UsedRange
strBasename = ActiveWorkbook.FullName
With rngData
lng1stRow = .Row
lngLstRow = Application.Ceiling(.Cells(.Cells.Count).Row, STEP_ROWS_COUNT)
End With
Application.ScreenUpdating = False
For i = lng1stRow To lngLstRow Step STEP_ROWS_COUNT
' 新規ブック作成
Set Wb = Workbooks.Add
' STEP_ROWS_COUNT で指定された行ごとに新規ブックの Sheet1 にコピー
rngData.Rows(CStr(i) & ":" & CStr(i + STEP_ROWS_COUNT - 1)).Copy _
Destination:=Wb.Worksheets("Sheet1").Range("A1")
' 新規ファイル名生成
strFilename = Left$(strBasename, InStrRev(strBasename, ".") - 1) & "(" _
& Format$(i, "0000") & "-" & Format$(i + STEP_ROWS_COUNT - 1, "0000") _
& ").xls"
' 同一フォルダに保存して閉じる
Wb.SaveAs Filename:=strFilename
Wb.Close
Set Wb = Nothing
Next i
Set rngData = Nothing
End Sub
マクロがよく分からないので、悪戦苦闘のうえ、
無事に成功できました。凄いですね!
ファイルが番号順の名前で出来てきたときは
驚きと嬉しさでいっぱいでした。
マクロを作っていただき大変助かりました。
ほんとうに有難うございました。
No.1
- 回答日時:
以下のようなマクロで可能です。
対象のシートは1枚であると仮定しています。
(あまりテストしてないのでバグがあるかもしれません)
---
Sub test()
Dim m As Long
Dim r As Long
Dim n As String
n = ActiveWorkbook.Name
'コピー単位
m = 50
'最終行取得
r = Range("A65536").End(xlUp).Row
'最終行がコピー単位より大きい間繰り返し
Do While r > m
'コピー単位より大きい部分を切り取り
Rows(CStr(m + 1) & ":" & CStr(r)).Cut
'新しいシートを作成
Sheets.Add After:=Worksheets(Worksheets.Count)
'新しいシートに貼り付け
Rows("1:1").Insert Shift:=xlDown
'最終行を取得
r = Range("A65536").End(xlUp).Row
Loop
'シートが1つになるまで繰り返し
Do While Worksheets.Count > 1
'最後のシートを新しいブックに移動
Sheets(Worksheets.Count).Move
'最初のブックに戻る
Windows(n).Activate
Loop
End Sub
マクロはよく分からないんですが、ちょっとうまく
動いてくれませんでした。途中で止まりました。
どこが悪いかもよく分かりませんが、
お手数かけて
作っていただき有難うございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
- Visual Basic(VBA) 【困っています2】VBA 追加処理の記述を教えてください。 2 2022/08/26 11:42
- Visual Basic(VBA) マクロについて教えてください。 1 2023/06/09 13:17
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Visual Basic(VBA) Excel VBA 最終行を取得しVlookup関数をコピーする方法をコーディングで教えてください。 3 2023/05/11 13:14
- Visual Basic(VBA) エクセルのマクロについて教えてください。 5 2023/06/02 08:44
- Visual Basic(VBA) マクロVBA 1シートをまとめる 閉じ方 初心者 SOS! 1 2022/06/17 14:54
- Visual Basic(VBA) マクロで最終行を取得したい 4 2023/05/28 12:14
このQ&Aを見た人はこんなQ&Aも見ています
-
カンパ〜イ!←最初の1杯目、なに頼む?
飲み会で最初に頼む1杯、自由に頼むとしたら何を頼みますか? 最初はビールという縛りは無しにして、好きなものを飲むとしたら何を飲みたいですか。
-
大人になっても苦手な食べ物、ありますか?
大人になっても、我慢してもどうしても食べれないほど苦手なものってありますよね。 あなたにとっての今でもどうしても苦手なものはなんですか?
-
遅刻の「言い訳」選手権
よく遅刻してしまうんです…… 「電車が遅延してしまい遅れました」 「歯医者さんが長引いて、、、」 「病院が混んでいて」 などなどみなさんがこれまで使ってきた遅刻の言い訳がたくさんあるのではないでしょうか?
-
許せない心理テスト
私は「あなたの目の前にケーキがあります。ろうそくは何本刺さっていますか」と言われ「12本」と答えたら「ろうそくの数はあなたが好きな人の数です」と言われ浮気者扱いされたことをいまだに根に持っています。
-
とっておきの「まかない飯」を教えて下さい!
飲食店で働く方だけが食べられる、とっておきの「まかない飯」。 働いてらっしゃる方がSNSなどにアップしているのを見ると、表のメニューには出てこない秘密感もあって、「食べたい!!」と毎回思ってしまいます。
-
エクセルで20万行あるシートから100行ずつ抽出したいのですが
Excel(エクセル)
-
Excelで大量の2000個のリストを100個ずつ
Excel(エクセル)
-
エクセル2007 A列多数セルを50行ごとに区切る
その他(Microsoft Office)
-
-
4
EXCELで100行に1行ずつ抽出したい
Excel(エクセル)
-
5
エクセルで長い行を5行ごとに1列にするには?
Excel(エクセル)
-
6
エクセルで1列に500行並んだデータを5列毎に改行
Excel(エクセル)
-
7
Excelで50行毎に改ページを入れたい
その他(Microsoft Office)
-
8
100万行のCSVを10万行ずつのファイルに区切るには?(UTF-8、改行LF)
Excel(エクセル)
-
9
エクセル(EXCEL)VBAで行自動分割
その他(Microsoft Office)
-
10
エクセルの表で10行毎に1行づず新しい行を挿入する方法
Excel(エクセル)
-
11
1行を1シートずつに書き出すには
Excel(エクセル)
-
12
Excelで12行ずつ印刷するには
Excel(エクセル)
-
13
エクセルの1シートの内容を複数のシートに分割したい。
Excel(エクセル)
-
14
EXCEL の表を一行ずつシートに分ける方法
Excel(エクセル)
-
15
エクセルのページをシートごとに自動分割するやり方について(列、行ともに同一に)
Excel(エクセル)
-
16
Excel VBAで同じフォルダ内のファイルを開くには?
Excel(エクセル)
-
17
エクセルの改ページを行ごとに自動挿入するには?
Excel(エクセル)
-
18
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
-
19
VBA 連続行データを5行ずつ隣の列に貼り付ける
Excel(エクセル)
-
20
実行時エラー 438になった時の対処法を教えて下さい。
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelの警告について
-
エクセルの関数 ENTERを押...
-
VBAでブックを非表示で開いて処...
-
エクセルを共有するとPCによっ...
-
WorkBooksをオープンさせずにシ...
-
Excelで複数ブックの同一セルに...
-
エクセルにおける,「ブック」...
-
Excelでブックの共有を掛けると...
-
Excelファイルをダブルクリック...
-
複数ファイルから特定シートの...
-
同じフォルダへのハイパーリン...
-
VBA バックグラウンドで別ブッ...
-
指定ファィルの指定シートをシ...
-
エクセルで「ディスクがいっぱ...
-
印刷しようとすると強制終了に...
-
エクセルファイルをオープンし...
-
Excel(2010)のフィルターが保...
-
エクセルで別ブックをバックグ...
-
ブックの保護ができないんです...
-
vbaでpdfを開いて1ページ目のみ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelの警告について
-
エクセルを共有するとPCによっ...
-
エクセルの関数 ENTERを押...
-
VBAでブックを非表示で開いて処...
-
Excel(2010)のフィルターが保...
-
エクセルで参照しているデータ...
-
印刷しようとすると強制終了に...
-
WorkBooksをオープンさせずにシ...
-
エクセルにおける,「ブック」...
-
Excelでブックの共有を掛けると...
-
Excelファイルをダブルクリック...
-
エクセルファイルを開かずにpdf...
-
ブックのピボットを別ブックに...
-
Excel起動時に特定のワークシー...
-
エクセルで「ディスクがいっぱ...
-
同じフォルダへのハイパーリン...
-
VBA バックグラウンドで別ブッ...
-
フォルダ内の複数ファイルから...
-
エクセルシートの一部を送りたい
-
Excelで複数ブックの同一セルに...
おすすめ情報