【コピペOK】エクセル複数シートをCSVで分割保存!VBAの貼り付け方から解説!

コピペで使えるコード集

エクセルのシートを、個別ファイルに分割したい!
日付毎のシートを一つのエクセルで管理してるけど、分けて保存したい…

部署ごとや日付ごとのシートを、外部提出用に分割保存したい時など、シート分割は頻繫ではないですがたまにある作業ではないでしょうか?

エクセルのシート個別のファイルとして保存するのは、意外と面倒な作業です。シートを選択して別のエクセルに移動し、そのエクセルを保存する。複数ある場合は、結構時間がかかる作業となります。

そんな作業ですが、VBA(マクロ)を使えば一発で自動化できます。本記事では、コピペでそのまま使える便利なVBAコードを紹介し、貼り付け方や実行方法まで丁寧に解説します。

またこのブログでは、ほかにもコピペで使えるVBAを多数紹介しています。こちらでも紹介しているので、ぜひ参考にしてみてください!

【結論】コピペで使えるエクセルシート分割VBA

以下のVBAコードをそのままエクセルに貼り付ければ、セルの内容に従ってフォルダを一括で作成できます。


Sub ExportSheetsToCSV()
    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 = "CSVの保存先フォルダを選択してください"

    If fileDialog.Show = -1 Then
        folderPath = fileDialog.SelectedItems(1)
    Else
        MsgBox "フォルダが選択されていません。処理を中止します。"
        Exit Sub
    End If

    ' 各シートをCSVとして保存
    For Each ws In ThisWorkbook.Worksheets
        sheetName = ws.Name

        ' 一時ブックを作成してシートをコピー
        ws.Copy
        Set tempWB = ActiveWorkbook

        ' CSVとして保存
        Application.DisplayAlerts = False ' 上書き確認を表示しない
        tempWB.SaveAs Filename:=folderPath & "\" & sheetName & ".csv", FileFormat:=xlCSV
        tempWB.Close SaveChanges:=False
        Application.DisplayAlerts = True
    Next ws

    MsgBox "全シートのCSV保存が完了しました!"
End Sub

Office付きで有料AIを月1800円以下で使う方法をコチラで紹介しています!

【番外】すぐ使えるエクセルファイル

VBAが分からないという方向けに、VBAが入ったエクセルファイルを用意しました。ここに内容を書き込むだけで、簡単にフォルダが自動作成できます。

ファイルはnoteにて販売しています。すぐに活用したいという方はそちらを確認してください。

【Excelツール】シート分割保存セット(Excel・CSV)|すぐに使える完成版ダウンロード|犬井 | 効率化大全
取引先ごとのシートを、別々のファイルにしてメールで送りたい。 システムへの取り込み用に、全シートを個別のCSVファイルに保存したい。 シートタブを右クリックして、「移動またはコピー」を選び、「新しいブック」にして保存…。 これを10シート、...
【さらにお得】効率化ツール全セット版も公開中!

Outlook操作やファイル整理など、今後追加されるツールもすべて使い放題になる「まとめ買いセット」も紹介しています。

複数使う予定の方は、こちらの方が圧倒的にお得です。

▼ 効率化ツール全セットはこちら

【DLで使える!】Excel・Outlookの「単純作業」自動化ツール|犬井 | 効率化大全
※2025/1/7にエクセルファイル/CSVの統合ツールを追加しました! 購入いただいた方は、追加ツールは追加費用なしでダウンロード可能です! Outlookで、宛先と添付ファイルだけを変えた似たようなメールの作成『202501_請求書』の...

エクセルシート分割VBAの動作

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

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

Office付きで有料AIを月1800円以下で使う方法をコチラで紹介しています!

エクセルシート分割VBAの使い方について

ここからはVBAのコピペ方法を含めて、使い方を紹介します。

手順1:エクセルの準備

今回は分割したいエクセルに直接コードを書き込みます。なので、分割したいエクセルを開けば準備完了です。

なお、ダウンロードファイルを使用する場合は、ダウンロードしたエクセルに分割したいシートをコピーしておいてください。

ダウンロードファイルを使用する場合、ダウンロードしたエクセルに分割したいシートをコピーする。

手順2:VBAの埋込

エクセルの「開発」タブから「Visual Basic」エディタを開きます。そしてVBAコードを「標準モジュール」に貼り付けます。

「開発」を出す設定コードの書き方は、VBAの基礎まとめのページで詳しく解説しています。こちらの記事もぜひ参考にしてみてください。

手順3:マクロ実行(作成場所選択)

マクロを実行すると「CSVの保存先フォルダを選択してください」というダイアログが表示されます。保存したいフォルダを選択し、OKを押してください。

項目があっても「項目はありません」と表示されますが、フォルダがあっていれば「OK」をクリック

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

まとめ:コードを改良してもっと使いやすく!

複数シートの分割保存という面倒な作業も、VBAを使えば一瞬で完了します。本記事で紹介したマクロを使えば、貼り付けるだけで簡単に自動化できます。

ただ、このVBAはどんな時でも使えるように作成しています。その為、すべてのシートが分割されてしまったり、CSVだったりと、人によると使いにくい部分もあると思います。

ぜひともそういった「ちょっとした不便」をきっかけに、VBAにチャレンジしてみてほしいと考えています!

このブログでは、このように日常業務が楽になるテクニックから、VBA等のスキルになる情報まで幅広く紹介しています。また現在、Office+生成AI2年間月1800円以下で使える、お得なキャンペーンをMicrosoftが実施しています。裏技的なやり方ですが大変お得なキャンペーンなので、興味がある方はぜひこの記事も参考にしてみてください!

MicrosoftのOffice+生成AIが月1800円以下で使えるお得な裏技はコチラ

※この記事を見た方は、こちらの記事もおすすめです!

コメント

タイトルとURLをコピーしました