エクセルのシートを、個別のエクセルに分割したい!
取引先毎のシートを分割して送りたいけど、普通にやったら手間がかかる…
取引先毎のシートを、各社に送付したい時など、シート分割はたまにある面倒な作業ではないでしょうか?
エクセルシートを個別のファイルとして保存するのは、意外と面倒ですよね。シートを選択して別のエクセルに移動し、そのエクセルを保存する。複数ある場合は、結構時間がかかります。
そんな作業は、VBA(マクロ)で自動化できます。本記事では、コピペでそのまま使えるVBAコードを紹介します。また、貼り付け方や実行方法まで画像付きで解説するので、VBAが分からない方も安心して読み進めてください!
またこのブログでは、ほかにもコピペで使えるVBAを多数紹介しています。こちらでも紹介しているので、ぜひ参考にしてみてください!
【結論】コピペで使えるエクセルシート分割VBA
以下のVBAコードをそのままエクセルに貼り付ければ、セルの内容に従ってフォルダを一括で作成できます。
Sub ExportSheetsToXlsx()
Dim folderPath As String
Dim fileDialog As fileDialog
Dim ws As Worksheet
Dim tempWB As Workbook
Dim sheetName As String
' フォルダ選択ダイアログを表示
Set fileDialog = Application.fileDialog(msoFileDialogFolderPicker)
fileDialog.Title = "エクセルの保存先フォルダを選択してください"
If fileDialog.Show = -1 Then
folderPath = fileDialog.SelectedItems(1)
Else
MsgBox "フォルダが選択されていません。処理を中止します。"
Exit Sub
End If
' 各シートをXlsxとして保存
For Each ws In ThisWorkbook.Worksheets
sheetName = ws.Name
' 一時ブックを作成してシートを
ws.Copy
Set tempWB = ActiveWorkbook
' Xlsxとして保存
Application.DisplayAlerts = False ' 上書き確認を表示しない
tempWB.SaveAs Filename:=folderPath & "\" & sheetName & ".xlsx", FileFormat:=xlOpenXMLWorkbook
tempWB.Close SaveChanges:=False
Application.DisplayAlerts = True
Next ws
MsgBox "全シートのエクセル保存が完了しました!"
End Sub
💻 まだまだあります!実務で使えるコピペコード集
当サイトで紹介している、日々の面倒な作業を自動化するVBA・マクロを一覧ページにまとめています!
【番外】すぐ使えるエクセルファイル
VBAが分からないという方向けに、VBAが入ったエクセルファイルを用意しました。ここに内容を書き込むだけで、簡単にフォルダが自動作成できます。
エクセルファイルはNoteで販売しています。すぐに使いたい方はこちらを活用してください。


【さらにお得】効率化ツール全セット版も公開中!
Outlook操作やファイル整理など、今後追加されるツールもすべて使い放題になる「まとめ買いセット」も紹介しています。
複数使う予定の方は、こちらの方が圧倒的にお得です。

エクセルシート分割VBAの動作
分割したいエクセルにVBAコードを張り付け実行します。

フォルダを選択画面するとエクセルシートがCSVに分割されます。

エクセルシート分割VBAの使い方について
ここからはVBAのコピペ方法を含めて、使い方を紹介します。
手順1:エクセルの準備
今回は分割したいエクセルに直接コードを書き込みます。なので、分割したいエクセルを開けば準備完了です。
なお、ダウンロードファイルを使用する場合は、ダウンロードしたエクセルに分割したいシートをコピーしておいてください。

ダウンロードファイルを使用する場合、ダウンロードしたエクセルに分割したいシートをコピーする。
手順2:VBAの埋込
エクセルの「開発」タブから「Visual Basic」エディタを開きます。そしてVBAコードを「標準モジュール」に貼り付けます。
「開発」を出す設定やコードの書き方は、VBAの基礎まとめのページで詳しく解説しています。こちらの記事もぜひ参考にしてみてください。
手順3:マクロ実行(作成場所選択)
マクロを実行すると「エクセルの保存先フォルダを選択してください」というダイアログが表示されます。保存したいフォルダを選択し、OKを押してください。

その後、開いているエクセルブック内の各シートが1枚ずつ自動的にxlsxファイルとして保存されていきます。最後に「全シートのエクセル保存が完了しました!」というメッセージが表示されれば、処理が終了です。

まとめ:コードを改良してもっと使いやすく!
複数シートの分割保存という面倒な作業も、VBAを使えば一瞬で完了します。本記事で紹介したマクロを使えば、貼り付けるだけで簡単に自動化できます。
ただ、このVBAはどんな時でも使えるように作成しています。その為、すべてのシートが分割されてしまったり、CSVだったりと、人によると使いにくい部分もあると思います。
ぜひともそういった「ちょっとした不便」をきっかけに、VBAにチャレンジしてみてほしいと考えています!
このブログでは、今回紹介したような内容から、日々の業務を根本からラクにする自動化テクニックまで幅広く紹介しています。
さらに一歩踏み込んで、「毎日の面倒な手作業を最速で終わらせたい!」という方向けに、VBAをイチから学ばず「コピペ×AI」でパパッと自動化するノウハウをまとめたKindle書籍を出版しました。
Kindle Unlimited(読み放題)なら0円で読めますので、ぜひチェックしてみてください!





コメント