KutoolsforOffice— 1 つのソリューション、5 つの強力なツール。少ない労力で大きな成果。

Excel で各行ごとに新しいシートを作成するには?

著者Siluvia変更日

データ管理やレポート作成のタスクでは、テーブル内の各レコードを個別のワークシートに分離したい場面がよくあります。たとえば、Excel で学生の詳細情報を管理していて、各行が異なる学生の情報を表している場合、それぞれの学生専用のワークシートを作成したいと思うかもしれません。あるいは、内容にかかわらず、単純に行ごとに新しいワークシートに分割し、各行を個別に配置したいケースもあるでしょう。こうした作業を手動で行うと、特に大規模なデータセットでは多大な時間と労力がかかり、ミスも発生しやすくなります。このプロセスを自動化すれば、大幅な時間節約とミスのリスク軽減が実現可能です。本ガイドでは、Excel で各行ごとに新しいワークシートを作成するための2 つの実用的なソリューションを紹介し、それぞれの長所と短所を解説することで、あなたのシナリオに最適な方法を選びやすくサポートします。

VBA コードで各行ごとに新しいシートを作成
Kutools for Excel のデータの分割ユーティリティで各行ごとに新しいシートを作成


VBA コードで各行ごとに新しいシートを作成

VBA(Visual Basic for Applications)を使えば、面倒で繰り返しの多いExcel 作業を効率よく自動化できます。たとえば、データの各行に基づいて新しいワークシートを素早く作成することが可能です。これは、特定の列(例:学生名など)で行をグループ化する場合でも、すべての行に対して内容にかかわらず個別のシートを作成する場合でも対応できます。この方法は、VBA エディターに慣れ親しんでおり、高度にカスタマイズ可能なソリューションを求めるユーザーに最適です。ただし、コードの編集と実行が必要なため、VBA の経験がない方や、マクロの実行が制限されている環境ではご利用いただけない場合があります。

1。「Alt キー + F11 キー」を押して、Excel 操作を自動化するための VBA コードにアクセスできるMicrosoft Visual Basic for Applicationsウィンドウを開きます。

2。Microsoft Visual Basic for Applicationsウィンドウで、挿入 > 標準モジュールをクリックして新しいコードモジュールを追加し、以下のコードをモジュールウィンドウにコピー&ペーストしてください。

VBA コード:列に基づいて各行ごとに新しいシートを作成

Sub parse_data()
'Update by Extendoffice 2018/3/2
    Dim xRCount As Long
    Dim xSht As Worksheet
    Dim xNSht As Worksheet
    Dim I As Long
    Dim xTRrow As Integer
    Dim xCol As New Collection
    Dim xTitle As String
    Dim xSUpdate As Boolean
    Set xSht = ActiveSheet
    On Error Resume Next
    xRCount = xSht.Cells(xSht.Rows.Count, 1).End(xlUp).Row
    xTitle = "A1:C1"
    xTRrow = xSht.Range(xTitle).Cells(1).Row
    For I = 2 To xRCount
        Call xCol.Add(xSht.Cells(I, 1).Text, xSht.Cells(I, 1).Text)
    Next
    xSUpdate = Application.ScreenUpdating
    Application.ScreenUpdating = False
    For I = 1 To xCol.Count
        Call xSht.Range(xTitle).AutoFilter(1, CStr(xCol.Item(I)))
        Set xNSht = Nothing
        Set xNSht = Worksheets(CStr(xCol.Item(I)))
        If xNSht Is Nothing Then
            Set xNSht = Worksheets.Add(, Sheets(Sheets.Count))
            xNSht.Name = CStr(xCol.Item(I))
        Else
            xNSht.Move , Sheets(Sheets.Count)
        End If
        xSht.Range("A" & xTRrow & ":A" & xRCount).EntireRow.Copy xNSht.Range("A1")
        xNSht.Columns.AutoFit
    Next
    xSht.AutoFilterMode = False
    xSht.Activate
    Application.ScreenUpdating = xSUpdate
End Sub

パラメーターの説明と使用上のヒント:

  • A1:C1はデータテーブルのヘッダー範囲です。必要に応じて、この参照を実際のデータヘッダー領域に合わせて調整してください。
  • コードは指定された列(デフォルトでは列 A)から一意の値を抽出し、それぞれの値ごとに該当する行を含む個別のワークシートを自動生成します。
  • テーブルの幅が広かったり、異なる行から始まる場合は、xTitleやセル参照を適宜更新してください。
  • ワークシートに他のシートを参照する数式が含まれている場合は、分割後にその参照を必ずご確認ください。

3。「F5」キーを押すか、「実行」をクリックしてコードを実行すると、現在のブック内の既存のシートの後に新しいワークシートが作成され、選択した列の一意の値に従ってそれぞれ名前が付けられます。サンプル結果については、以下のスクリーンショットをご覧ください:

列の値に基づいて各行からワークシートが作成された新しいワークブックを示すスクリーンショット

列の内容にかかわらず、各行を単純に個別のワークシートに分割したい場合は、以下の代替 VBA コードをご利用いただけます。これにより、列の条件を指定する必要がなくなります。

VBA コード:各行ごとに直接新しいシートを作成

Sub RowToSheet()
	Dim xRow As Long
	Dim I As Long
	With ActiveSheet
		xRow = .Range("A" & Rows.Count).End(xlUp).Row
		For I = 1 To xRow
			Worksheets.Add(, Sheets(Sheets.Count)).Name = "Row " & I
			.Rows(I).Copy Sheets("Row " & I).Range("A1")
		Next I
	End With
End Sub

このコードをモジュールで実行すると、ヘッダー行を含むアクティブワークシートのすべての行が、新たに作成されたワークシートにコピーされます。ヘッダー行も複製される点にご注意ください。これを回避したい場合は、出力されたシートを後から手動で削除または調整してください。

トラブルシューティングと実用的なヒント:
・「サブスクリプトが範囲外です」といったエラーが発生した場合は、シート名に無効な文字や重複する名前が含まれていないか確認してください。
・大規模なデータセットでは多数のシートが作成され、Excel の動作が遅くなったり、ナビゲーションが煩雑になる可能性があります。非常に大きなテーブルの場合は、行ごとの分割が本当に必要かどうか見直しましょう。
・ VBA コードを実行する前に、必ずデータのバックアップを取って、意図しないデータ損失を防いでください。

メリット:無料で、高度にカスタマイズ可能。
デメリット:VBA/マクロの有効化と VBA エディターの基本的な知識が必要です。複雑または特殊なデータでは、コードエラーが発生する可能性があります。
向いているユーザー:スクリプトによる柔軟性を求める方、および不定期または一回限りのタスクを行う方に最適です。


Kutools for Excel のデータの分割ユーティリティで各行ごとに新しいシートを作成

コードを記述せずにシンプルでユーザーフレンドリーな方法を好むなら、データの分割にはKutools for Excelのユーティリティが強くおすすめです。この機能を使えば、わずか数回のクリックでデータを新しいワークシートに素早く分割でき、ワークシート管理の手間を大幅に軽減します。Kutools は、大規模で複雑なテーブルを頻繁に扱う方や、手動でのコーディングよりもグラフィカルなインターフェースを好む方に特に役立ちます。なお、Kutools はExcel アドインのため、事前にインストールが必要です。

Kutools for Excelは300 以上の高度な機能を提供し、複雑な作業を効率化して、創造性と生産性を高めます。AI 機能と統合されたKutools は、正確にタスクを自動化し、データ管理を簡単にします。Kutools for Excel の詳細情報。。。         無料トライアル。。。

1。個別のワークシートに分割したいデータを含むテーブルを選択します。次に、KUTOOLS PLUSタブをクリックし、データの分割を選択してください。下のスクリーンショットをご参照ください:

Excel の Kutools Plus タブにある「データの分割」オプションのスクリーンショット

2。複数のワークシートにデータを分割するダイアログボックスで、あなたの分割ニーズにぴったり合う設定を選びましょう。

A. 列の値に基づいて新しいシートを作成する場合:

1)。列を指定オプションを選択し、分割の基準とする列(通常は学生名や ID などの一意の識別子)を指定します。
2)。各シートをその列の値で名付けたい場合は、指定した列の値ルール」ドロップダウンメニューから選択します。
3)。OKをクリックして分割を実行します。下のスクリーンショットをご覧ください:

列の値で分割するための設定が含まれる「データを複数のワークシートに分割」ダイアログ ボックスのスクリーンショット

B. 各行ごとに直接新しいシートを作成する場合:

1)。固定値オプションを選択し、1をボックスに入力して、各ワークシートにデータの1 行のみを含めるように指定します。
2)。ルールドロップダウンで、行数を設定を選択して、各行のインデックスで各シートにラベルを付けます。
3)。OKをクリックして分割プロセスを開始します。下のスクリーンショットを参照してください:

行で分割するための設定が含まれる「データを複数のワークシートに分割」ダイアログ ボックスのスクリーンショット

実行後、選択した設定に基づき、すべての新しいワークシートを含んだ新しいワークブックが生成されます。

列の値に基づいて各行ごとに新しいシートを作成する場合:

列の値に基づいて各行からワークシートが作成された新しいワークブックを示すスクリーンショット

列の値を考慮せずに各行ごとに新しいシートを作成する場合:

列の値を考慮せずに各行からワークシートが作成された新しいワークブックを示すスクリーンショット

注意点と実用的なヒント:
・データ分割ユーティリティを使う前に、テーブル内に空白行がないか必ず確認してください。空白行があると、空のシートが作成されてしまう可能性があります。
・重複や無効なワークシート名を避けるため、シートの命名規則を事前に確認しておきましょう。Kutools は名前が重複した場合、自動的に調整します。
・テーブルが非常に大きい場合は、多数のワークシートが生成される可能性があるので、実行前にその影響をしっかり考慮してください。

メリット:コーディング不要で誰でも簡単に使え、バッチ処理や頻繁に行うタスクに最適です。
デメリット:Kutools アドインのインストールが必要です。
向いているユーザー:あらゆるスキルレベルのExcel ユーザー、特に繰り返しのデータ分割作業を効率化したい方。

Kutools for Excel— 300 以上の必須ツールでExcel を強化し、作業をより迅速・簡単に。AI 機能を活用して、スマートなデータ処理と生産性の飛躍的な向上を実現します。今すぐ入手


Kutools for Excel のデータの分割ユーティリティで各行ごとに新しいシートを作成するデモ

 
Kutools for Excel:300 個を超える便利なツールがすぐそこへ!AI 搭載の機能で、よりスマートでスピーディーな作業をぜひお楽しみください!今すぐダウンロード!

最高の Office 業務効率化ツール

🤖KUTOOLS AI アシスタント:次に基づいてデータ分析を革新します:インテリジェント実行     コード生成  カスタム数式作成    データ分析とチャート生成  拡張機能呼び出し
人気の機能検索・ハイライト、または重複をマーキング     空白行を削除する     データを失うことなく列の結合またはセルを     数式を使用しない四捨五入...
スーパー LOOKUP複数条件 VLookup    複数値 VLookup     複数シート間 VLookup      ファジーマッチ....
高度なドロップダウンリストドロップダウンリストをすばやく作成     連動型ドロップダウンリスト     複数選択可能なドロップダウンリスト....
列マネージャー指定した数の列を追加列の移動非表示列の表示状態を切り替え範囲および列の比較...
注目の機能グリッドフォーカス     デザインビュー   強化された数式バー    ワークブックとシートマネージャー     リソースライブラリ(オートテキスト)  日付ピッカー     ワークシートの統合    暗号化/セルの復号化    リストからメール送信     スーパーフィルター      特殊フィルタ(太字のフォントを持つセルをフィルタリング/斜体/取り消し線。。。) 。。。
トップ15 ツールセット12 テキストツールテキストの追加特定の文字を削除、...)   50+チャートタイプガントチャート、...)   40+実用的関数誕生日に基づいて年齢を計算します、...)   19 挿入ツールQR コードを挿入パスから画像を挿入、...)   12 変換ツール単語に変換する為替レートの変換、...)   7 結合と分割ツール高度な行のマージセルの分割、...)さらに多数
Kutools はお好みの言語でご利用いただけます。英語、スペイン語、ドイツ語、フランス語、中国語、および40+の他の言語をサポートしています!

Kutools for Excel でExcel スキルを強化し、これまでにない効率を体験しましょう。Kutools for Excel は、生産性を高め、時間を大幅に節約できる高度な機能を300 以上提供します。最も必要な機能を今すぐ入手するにはこちらをクリック。。。


Office Tab は Office にタブインターフェースをもたらし、作業を大幅に簡単にします

  • Word、Excel、PowerPoint でタブを使った編集と閲覧を有効にします。Publisher、Access、Visio、Project でもご利用いただけます。
  • 複数のドキュメントを、新しいウィンドウではなく、同じウィンドウ内の新しいタブで開いたり作成したりできます。
  • 日々の生産性を50%も向上させ、毎日数百回ものマウスクリックを削減します!

すべてのKutools アドインが、たった1 つのインストーラーで完結。

Kutools for Officeスイートには、Excel ・Word ・Outlook ・PowerPoint 用のアドインと Office Tab Pro が含まれており、複数の Office アプリを横断して作業するチームに最適です。

ExcelWordOutlookTabsPowerPoint
  • オールインワンスイート— Excel、Word、Outlook、PowerPoint 用アドイン+Office Tab Pro
  • インストーラー1 つ、ライセンス1 つ— 数分でセットアップ可能(MSI 対応)
  • 連携してさらにパワーアップ— Office アプリ全体で生産性が向上
  • 30 日間のフル機能トライアル— 登録不要、クレジットカード不要
  • 最高のお得感— 個別アドイン購入よりお得