データを項目別にシート分割マクロ

自動でデータを指定した項目別にデータを抽出し、シートを分割することができる!
データを項目ごとにシート分割マクロツールをご紹介します。
エクセルファイルをダウンロードしてすぐに使えます。

このマクロツールでボタンを押すだけで
データを指定した項目別にデータを抽出し、シートを分割ができます。

操作画面

手順

データを項目別にシート分割ボタンを押す

②ダイアログから作業ファイルを選択する

③分割したいシートを選択

④分割したい項目を入力
※選択した項目の中に既存シートと同じ名前のデータがあるとエラーになります。
 また、シート名が変更できないものが含まれている場合もエラーになります。

作業が完了すると指定した項目別にファイルが分割されシート名も変更されます。

作業完了後、C4~D4セルに作業シート名、ファイル名が記入されます。

↓ダウンロードはこちらをクリック(詳しい手順、注意事項はファイルの中に記載) 

※ファイル形式がエクセル以外をお使いの場合はこちら

 

 

※分割後、オートフィルタ設定・1行目でウィンドウ枠を固定したものはこちら

 

※フィルタの位置を指定したい場合はこちら
画像に alt 属性が指定されていません。ファイル名: xlsm.gif

データを項目別にシート分割マクロ」への33件のフィードバック

  1. Wagon

    シート分割後にE列に数量を入れ、合計(いくつ使った)を自動に算出できないでしょうか

    返信
    1. macro 投稿作成者

      マクロで作成は可能です。
      もう少し詳細を聞かせていただきたくメールに返信をしましたが
      登録されているアドレスにお送りすることができませんでした。

      もし可能であれば問い合わせフォームからご連絡いただければと思います。
      よろしくお願い致します。

      返信
    2. うさぎ

      はじめまして
      こちら、大変ありがたく使わせていただいてるのですが、追加で以下2点にしたいご相談です。
      ①シート分割する列がAB列までに固定されてるようなのですが、ここをAZ列までに変更(もしくは、常に最終列までとってくる)
      ②分割したシートのすべてのタイトル行(1行目でしょうか)にフィルタをかけて、タイトル行を固定
      自分で修正してみたりもしたのですが、うまくいきません
      教えていただけますと幸いです

      返信
      1. macro 投稿作成者

        はじめまして。
        ご連絡ありがとうございます。
        掲載していましたマクロを①の仕様に変更しましたのでご確認ください。
        また、このページの一番下に②の仕様のマクロも掲載しましたのでご確認ください。
        何かありましたらご連絡下さい。
        貴重なご意見ありがとうございました。

        返信
  2. mi

    はじめまして。勝手ながら使用させていただいております。
    こちら、CSVで同じことができないでしょうか。
    CSVのデータを項目名指定で分割したいのですが、
    現在は、一度ブックで保存しなおしてから、使用させていただいている次第です。
    何卒よろしくお願い申し上げます。

    返信
    1. macro 投稿作成者

      はじめまして。
      ご連絡ありがとうございました。
      エクセルファイル以外も開けるマクロを通常のマクロの下に掲示しました。
      ご確認ください。

      返信
      1. mi

        ご対応ありがとうございます。
        大変助かります。
        お手数をお掛けいたしました。

        返信
  3. ディープインパクト

     いつも参考にさせていただいております。
     現在の仕様では、項目指定行が1行目と固定されていますが、項目指定行を任意の行(初期設定のメッセージボックス等で)に指定することは可能でしょうか。
     指定が可能であれば、指定行でフィルタ設定を行い、指定行までを見出し行、指定行の次の行以下を項目別のシートに分けたいです。
     それと、新シートへの貼り付けの際に、値貼り付けとなってしまうのですが、コピー元データ内の関数等をそのまま貼り付けることは可能でしょうか。
     できれば、「シートごとにファイル分割マクロ」と同じエクセルマクロで掲載していただけるとありがたいです。
     お願いばかりで申し訳ありませんが、お力添えいただけるとありがたいです。

    返信
    1. macro 投稿作成者

      ご連絡ありがとうございます。
      任意の行に指定、貼付けの件は承知致しました

      「「シートごとにファイル分割マクロ」と同じエクセルマクロで掲載」というのは
      データを項目ごとにシート分割するのではなくファイル分割したいということでしょうか?

      返信
      1. ディープインパクト

         お手数をおかけしています。
         「「シートごとにファイル分割マクロ」と同じエクセルマクロで掲載」というのは一つのツールの中で、ボタンを2個設けていただき、①項目別にシートを分割、②シートごとにブックを作成というイメージです。
         可能であれば、よろしくお願いします。

        返信
        1. macro 投稿作成者

          ご返信ありがとうございます。
          ご希望のマクロは作成可能です。
          個人的な依頼となりますので作成しましたら、
          登録されておりますメールアドレスにお送りしてもよろしいでしょうか?

          返信
          1. ディープインパクト

            コメントありがとうございます。
            汎用性がなく、私個人のために管理人様の貴重なお時間を費やしていただくのも申し訳ありませんので、現在掲載いただいているものを利用させていただきます。
            この度はありがとうございました。

          2. macro 投稿作成者

            ご返信ありがとうございます。
            とんでもないです。貴重なご意見ありがとうございました。
            「項目指定行を任意の行(初期設定のメッセージボックス等で)に指定する」という意見は汎用性があり
            新しくこのようなツールを掲載しようかと思ってました。
            「「シートごとにファイル分割マクロ」と同じエクセルマクロで掲載」という件に関しては
            サイトに掲載ということではなくメールでお送りしても良いかと確認したかったのですが
            マクロを2つ組込むことは手間のかかる作業ではないので…

  4. ディープインパクト

    ありがとうございます。
    「項目指定行を任意の行(初期設定のメッセージボックス等で)に指定する」ファイルだけでも掲載いただけるとありがたいです。
    お手数でなければ、ご検討のほどよろしくお願いします。

    返信
    1. macro 投稿作成者

      遅くなりましたが、ご希望のマクロを掲示しました。
      こちらのページの一番下にある「※フィルタの位置を指定したい場合はこちら」からダウンロードできます。
      何か不具合がありましたらご連絡下さい。
      よろしくお願い致します。

      返信
  5. S-TEKT 清水 孝弘

    こちらを元にタイムカードのデータ整理をしたいと考えています

    タイムカードデータは、約30名のデータが日時毎に並んでいます
    そのデータを基に
    1)それぞれのデータをシートに分ける
    2)それぞれのシート毎にコマンドボタンが配置されていて、データの加工をする
    3)コマンドボタンは共通で加工方法を登録できる

    そんな事をしたいと考えています

    お仕事として依頼したいと考えていますが、相談に乗っていただけないでしょうか?

    よろしくお願いします

    返信
  6. マクロ初心者

    項目が違った項目でシート作成されてしまう。どうすればよいのでしょうか

    返信
    1. macro 投稿作成者

      返信遅くなりまして申し訳ありません。
      もう少し詳しく状況を教えていただけないでしょうか?

      返信
  7. a

    お世話になります。
    こちらのマクロシートを使用させていただいております。

    項目別にシート分けはできたのですが、
    元シート(Sheet1)で列幅・行幅・オートフィルターを設定したものが
    他のシートには反映されません。

    全シートに、元シートと同じ列幅・行幅・オートフィルターの設定をすることは可能でしょうか。

    お手数をおかけしますが、ご確認お願いいたします。

    返信
    1. macro 投稿作成者

      ご連絡ありがとうございます。
      新たにシートを追加してシート分けしているため
      書式とオートフィルタの設定は追加したファイルに反映されません。

      ご希望のマクロを作成することは可能ですが期日はお約束できませんので
      お急ぎでしたらこちらをツールをご使用等でご対応願います。
      お手数お掛け致しますがよろしくお願い致します。

      返信
      1. a

        お世話になっております。
        ご返信ありがとうございます。

        時間がかかっても構いませんので、
        希望のマクロを作成していただくことは可能でしょうか。

        シート分けで新たに追加したシートにも、元シート(Sheet1)と同じ
        列幅・行幅・オートフィルター・並び替え を反映できるようになれば助かります。

        自分でも頑張ってみたのですが上手くいかず・・・
        お忙しいところ大変申し訳ございませんが、何卒宜しくお願いいたします。

        返信
        1. macro 投稿作成者

          お世話になっております。
          先日のコメントに「並び替え」について記載がなかったのですが
          どのように並び替えたいのでしょうか?
          具体的にご教示いただけますと幸いです。

          返信
          1. a

            お世話になっております。
            要望を増やしてしまい申し訳ございません。

            手順として、

            ①元データのエクセルでマクロを実行(VBAで作成)
             ・列の追加(1行目に項目名を入力)、追加行に関数入力
             ・E列、X列でオートフィルター
             ・B列、D列、M列で並び替え(すべて昇順)
             ・列幅を自動調整
             ・全ての行幅を「20(40ピクセル)」に設定
             ・不要な列の非表示

            ②配布いただいているシート分割マクロを使用し、項目別にシート分け

            という流れとなっています。
            ①の手順の 列の追加・不要な列の非表示 はシート分割後も適用されているのですが、
            それ以外が適用されずに悩んでいます。

            お手数おかけし申し訳ございませんが、ご確認お願いいたします。

          2. macro 投稿作成者

            おそらく①ご自身で作成されたマクロで並び替え等は行われていると思いますので
            ②配布しているマクロに分割で新しく作成したシートにオートフィルタの設定と書式のコピー(列幅も含む)を追加すればよろしいでしょうか?

  8. a

    いつもお世話になっております。

    はい、今は自分で作成したマクロで並び替え等を行っております。
    配布マクロに記載いただいた動作を追加していただくことは可能でしょうか。
    (こちらでも編集を試みましたが、ロック?がかかっており編集できませんでした)

    お手数おかけし大変申し訳ございません。
    ご確認お願いいたします。

    返信
  9. yamamoto

    お世話になっております。
    こちらのシートを大変便利に使用させていただいております。

    分割したそれぞれのシートの最終行はSUM関数で合計値を入れたいのですが、方法がわかりません。
    ご教示願えないでしょうか。
    宜しくお願い致します。

    返信
    1. macro 投稿作成者

      返信が遅くなりまして申し訳ありません。
      全ての列にSUM関数を入れたということでしょうか?

      返信
  10. りく

    こちらのマクロ大変重宝させていただいております。

    もし可能であれば下記の2点を反映させたver、もしくは実施方法をご教授いただけないでしょうか?

    ①分割されたシートに任意の名称を付ける
    現状のマクロではたとえば「品名」で分類分けを行った場合
    作成されるシートは「トマト」や野菜の名称になるかと思います。
    私の使用用途では単純な数字のデータを分類分けするため
    シート名称が「11」や「12」等の数字となってしまいます。
    ただ、この11には意味があり 11=大阪 12=東京等の情報を持っています。
    可能であれば11の時はシート名が自動で大阪と設定されるような方法をがあれば非常に助かるのですが
    ご教授いただけないでしょうか
    何卒宜しくお願い致します。

    ②分類する項目名を常時同じもので固定したい
    <実現したいこと>
    マクロ実行→実行対象のcsvデータを選択後
    分割対象の項目名を指定しますが
    この部分を廃止し、常に「H列」を基軸に分割したい
    ※掲載いただいているキャプチャでいうと、「B列 品名」で常に分割されるようにしたい

    <背景>
    こちらのマクロを使用し
    毎朝複数回流れてくるデータの管理を実施しておりますが
    シート分けに使用する列は毎度同じ内容のため
    このマクロを起動すれば分割の項目名を入力することなく分割されることで
    毎日の細かい業務の改善につながるため

    以上、長々と書いてしましましたが
    上記可能そうであればご連絡いただければ幸いです
    以上、何卒宜しくお願い致します。

    返信
    1. りく

      ※補足※
      上記コメントの内容は
      CSVデータでの実施を予定しております

      何卒宜しくお願い致します。

      返信
    2. macro 投稿作成者

      返信が遅くなりまして申し訳ありません。

      ①H列で固定する方法

      以下を削除していただき

      Dim c As Integer ‘対象列用
      ‘列取得
      Dim s As String
      Dim rng As Range

      Do ‘列が決まるか中止するまでのループ
      s = InputBox(“項目名=(改行のみで終了)”) ‘項目名取得
      If s = “” Then Exit Sub ‘空白なら終了
      Set rng = ws.Range(Cells(1, 1), Cells(1, Columns.Count)).Find(s, LookAt:=xlWhole) ‘項目名を1行目で探す
      If Not rng Is Nothing Then Exit Do ‘見つけたら抜ける
      MsgBox “項目名に[” & s & “]が見つかりません。”
      Loop

      If MsgBox(“[” & rng.Value & “]で分けますか?”, vbYesNo) <> vbYes Then Exit Sub ‘最終確認

      Application.ScreenUpdating = False ‘画面更新非表示
      c = rng.Column ‘対象列

      以下に置き換えてください。

      Dim c As Integer ‘対象列用
      Application.ScreenUpdating = False ‘画面更新非表示
      c = 8 ‘対象列

      ②シート名の変更
      以下のツールをご活用いただければ幸いです。
      https://excel-macro.com/sheets_namechange_sp/

      返信
  11. 有難い…

    こんにちは。
    ちょうど、項目でシートを分ける作業が頻繁に発生しており、マクロ化できないかといろいろやっていたのですが、エラーばかりで挫折しそうなところでした…
    とても有難く利用させていただければと存じます。

    尚、可能であればなのですが、下記を追加できればと思っており、コードを追加したいのですが、お知恵を拝借させていただけないでしょうか。

    例:
    分割後のシート1
         A      B     C  
    1   商品ID   商品名   会社名
    2 4005 モンブラン A会社

    分割後のシート2
         A      B     C  
    1   商品ID   商品名   会社名
    2 4000 ショートケーキ B会社

    上記の商品ID、商品名の分割後のシートの2行目の文字列を抜き出しG2列以降、H2列以降のセルに入力する。
    また、セルI2には選択したファイルのデータの行数(2行目からカウント)を入力し、セルJ2にはシート数をカウントし入力できればと思っております。

    ~  |  G   |  H  | I | J  
    1|    商品ID  | 商品名 |データ数 |シート数
    2|     4005 | モンブラン| 20 | 3
    3| 4000 |ショートケーキ

    返信
  12. 有難い…

    先日コメントさせていただいた件について、補足となります。
    G1にピボットテーブルを挿入することで確認したい内容を整理できそうなので、やっておりますがうまくいきません…
    いつもはマクロの記録等でベースを作ってから修正しているのですが、今回の場合は別ファイルだからかやり方が分からず…
    もし可能でしたらお力をいただけると幸いです。。。

    返信
    1. macro 投稿作成者

      返信が遅くなりまして申し訳ありません。
      コメントのご説明ですと内容がわからない部分もありますので
      まだツールが必要であれば問い合わせフォームから詳しくご説明いただけたら幸いです。

      返信

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください