1枚のシートに全員分のデータが入っていて、「担当者ごとに別シートにして配りたい」「支店ごとに分けて送りたい」。毎回フィルタをかけてコピーして貼って…を繰り返していませんか。
指定した列の値ごとにシートを自動で分けるVBAマクロを、コード全文と使い方つきで載せます。データ整理・Excel自動化の作業用に整えた形をそのまま公開します。
■ できること
・シート「データ」を、指定した列(例:B列の担当者)の値ごとに別シートへ分ける
・各シートに見出し行を付ける。列幅も自動調整
・同じ名前のシートが既にあれば、中身を消してから書き直す(2回目以降も同じマクロで更新できる)
・元の「データ」シートは触らない。空欄のキーは「(空欄)」シートにまとめる
・シート名に使えない文字(/ : * ? など)は自動で「_」に置き換え、31文字に収める
・実行前に「保存しましたか?」と確認し、途中でエラーが起きたらメッセージを出して止まる(データが中途半端に書き換わらない)
■ 必要なもの
・Excel 2016以降(Windows)。マクロ有効ブック(.xlsm)で保存
・「開発」タブ(ファイル→オプション→リボンのユーザー設定→「開発」にチェック)
■ 使い方(4ステップ)
1.分けたい表を、シート名「データ」に置く(1行目が見出し、2行目からデータ)
2.開発→Visual Basic→挿入→標準モジュール に、コード全文を貼る
3.コード冒頭の KEY_COL(何列目で分けるか。B列なら2)を必要に応じて変える
4.開発→マクロ→「列の値ごとにシート分割」→実行。「◯枚のシートに分けました」と出れば完了
以下(有料部分)に、コード全文(コメント付き・そのまま貼って動く)、動作確認の手順(4通り)、よくあるエラーと直し方、「分けたシートを別ブックとして保存したい」「特定の列だけ残したい」ときの改造ポイントを載せています。
1枚のシートに全員分のデータが入っていて、「担当者ごとに別シートにして配りたい」「支店ごとに分けて送りたい」。毎回フィルタをかけてコピーして貼って…を繰り返していませんか。
指定した列の値ごとにシートを自動で分けるVBAマクロを、コード全文と使い方つきで載せます。データ整理・Excel自動化の作業用に整えた形をそのまま公開します。
■ できること
・シート「データ」を、指定した列(例:B列の担当者)の値ごとに別シートへ分ける
・各シートに見出し行を付ける。列幅も自動調整
・同じ名前のシートが既にあれば、中身を消してから書き直す(2回目以降も同じマクロで更新できる)
・元の「データ」シートは触らない。空欄のキーは「(空欄)」シートにまとめる
・シート名に使えない文字(/ : * ? など)は自動で「_」に置き換え、31文字に収める
・実行前に「保存しましたか?」と確認し、途中でエラーが起きたらメッセージを出して止まる(データが中途半端に書き換わらない)
■ 必要なもの
・Excel 2016以降(Windows)。マクロ有効ブック(.xlsm)で保存
・「開発」タブ(ファイル→オプション→リボンのユーザー設定→「開発」にチェック)
■ 使い方(4ステップ)
1.分けたい表を、シート名「データ」に置く(1行目が見出し、2行目からデータ)
2.開発→Visual Basic→挿入→標準モジュール に、コード全文を貼る
3.コード冒頭の KEY_COL(何列目で分けるか。B列なら2)を必要に応じて変える
4.開発→マクロ→「列の値ごとにシート分割」→実行。「◯枚のシートに分けました」と出れば完了
以下(有料部分)に、コード全文(コメント付き・そのまま貼って動く)、動作確認の手順(4通り)、よくあるエラーと直し方、「分けたシートを別ブックとして保存したい」「特定の列だけ残したい」ときの改造ポイントを載せています。