Office
 Computer >> コンピューター >  >> ソフトウェア >> Office

複数のExcelファイルをCSVに一括変換する3つの方法【VBA・オンラインツール】

CSV(Comma Separated Value:カンマ区切り値)は、値がカンマで区切られたシンプルなデータ形式です。データベース管理において欠かせない形式の一つであり、多くのデータ管理業務ではExcelも併用されています。そのため、この2つの形式の間でデータをやり取りする場面は非常に多いものです。

CSVファイルをExcelに取り込むのは「区切り位置」機能などを使えば簡単ですが、逆に複数のExcelファイルをまとめてCSVに変換する場合、現時点では直接的な標準機能が存在しません。この目的を達成するには、VBAまたはオンラインツールを利用する必要があります。本記事では、複数のExcelファイルをCSVへ変換する具体的な手順を、わかりやすく解説します。

複数のExcelファイルをCSVに変換する3つの方法

解説には、購入日(Date of Purchase)地域(Region)製品名(Product)数量(Quantity)を見出しとする、シンプルで理解しやすいサンプルデータセットを使用します。

複数のExcelファイルをCSVに一括変換する3つの方法【VBA・オンラインツール】

方法1:VBAマクロを組み込んで一括変換する

シンプルなVBAマクロを使えば、複数のExcelファイルをCSV形式に変換する作業時間を大幅に短縮できます。この方法では、Excelファイルを読み込み、そのままCSV形式のファイルとして保存します。

手順

  • まず「開発」タブを開き、「Visual Basic」をクリックします。

複数のExcelファイルをCSVに一括変換する3つの方法【VBA・オンラインツール】

  • 次に「挿入」>「標準モジュール」を選択します。

複数のExcelファイルをCSVに一括変換する3つの方法【VBA・オンラインツール】

  • モジュールウィンドウに、以下のコードを入力します。
Sub convert_Excel_to_csv()

Dim Con_Mul_Excel As Workbook
Dim Con_Mul_Excel_ws As Worksheet
Dim Con_Mul_Excel_path As String
Dim Con_Mul_Excel_file As String
Dim Con_Mul_Excel_fd As FileDialog
Dim Con_Mul_Excel_sfd As FileDialog
Dim Con_Mul_Excel_spath As String
Dim Con_Mul_Excel_name As String

Application.ScreenUpdating = False
Application.EnableEvents = False
Application.Calculation = xlCalculationManual

On Error Resume Next
Set Con_Mul_Excel_fd = Application.FileDialog(msoFileDialogFolderPicker)
Con_Mul_Excel_fd.AllowMultiSelect = False
Con_Mul_Excel_fd.Title = "Select the Folder for Your Excel Files"
If Con_Mul_Excel_fd.Show <> -1 Then Exit Sub
Con_Mul_Excel_path = Con_Mul_Excel_fd.SelectedItems(1) & "\"
Set Con_Mul_Excel_sfd = Application.FileDialog(msoFileDialogFolderPicker)
Con_Mul_Excel_sfd.AllowMultiSelect = False
Con_Mul_Excel_sfd.Title = "Select Destination Folder"

If Con_Mul_Excel_sfd.Show <> -1 Then Exit Sub
Con_Mul_Excel_spath = Con_Mul_Excel_sfd.SelectedItems(1) & "\"
Con_Mul_Excel_file = Dir(Con_Mul_Excel_path & "*.xls*")

Do While Con_Mul_Excel_file <> ""
Set Con_Mul_Excel = Workbooks.Open(Filename:=Con_Mul_Excel_path & Con_Mul_Excel_file)
Con_Mul_Excel_name = Con_Mul_Excel_spath & Left(Con_Mul_Excel_file, InStr(1, Con_Mul_Excel_file, ".") - 1) & ".csv"
Con_Mul_Excel.SaveAs Filename:=Con_Mul_Excel_name, FileFormat:=xlCSV
Con_Mul_Excel.Close savechanges:=False
Con_Mul_Excel_file = Dir
Loop

Application.Calculation = xlCalculationAutomatic
Application.EnableEvents = True
Application.ScreenUpdating = True

End Sub
  • コードを入力したら、ウィンドウを閉じます。
  • 続いて「表示」タブ>「マクロ」(ダブルクリック)を開きます。

複数のExcelファイルをCSVに一括変換する3つの方法【VBA・オンラインツール】

  • マクロ一覧から、先ほど作成したマクロ(ここでは convert_Excel_to_csv)を選択し、「実行」をクリックします。

複数のExcelファイルをCSVに一括変換する3つの方法【VBA・オンラインツール】

  • 「実行」をクリックするとダイアログが開くので、変換したいExcelファイルが保存されているフォルダを選択して「OK」をクリックします。

複数のExcelファイルをCSVに一括変換する3つの方法【VBA・オンラインツール】

  • 次に、変換後のCSVファイルの保存先フォルダを指定するダイアログが表示されます。保存先フォルダを選択して「OK」をクリックしましょう。

複数のExcelファイルをCSVに一括変換する3つの方法【VBA・オンラインツール】

  • 処理中はローディングアイコンが回転します。完了したら、保存先フォルダを確認してください。
  • 保存先フォルダには、変換された3つのCSVファイルが格納され、拡張子が.csvになっていることがわかります。

複数のExcelファイルをCSVに一括変換する3つの方法【VBA・オンラインツール】

  • まずDataset_1を開いて確認してみましょう。
  • ファイルを開くと、ExcelファイルではなくCSVファイルとして表示されます。
  • これにより、変換が正常に完了したことが確認できます。

複数のExcelファイルをCSVに一括変換する3つの方法【VBA・オンラインツール】

  • 同様にDataset_2も開いて確認します。
  • こちらもExcelファイルではなくCSVファイルとして正しく開けば、変換成功です。

複数のExcelファイルをCSVに一括変換する3つの方法【VBA・オンラインツール】

  • 最後にDataset_3も開いて確認します。
  • 問題なくCSVファイルとして開ければ、すべての変換が成功しています。

複数のExcelファイルをCSVに一括変換する3つの方法【VBA・オンラインツール】

関連記事:ExcelファイルをCSV形式に変換する5つの簡単な方法

方法2:複数のExcelファイルを結合してからCSVに変換する

この方法では、複数のExcelファイルを1つのブックにワークシートとして統合し、その後、各シートを個別のCSVファイルとして書き出します。

手順

  • まず「開発」タブを開き、「Visual Basic」をクリックします。

複数のExcelファイルをCSVに一括変換する3つの方法【VBA・オンラインツール】

  • 「挿入」>「標準モジュール」を選択します。

複数のExcelファイルをCSVに一括変換する3つの方法【VBA・オンラインツール】

  • モジュールウィンドウに、以下のコードを入力します。
Sub Combine_Excel_Files()

Dim fnList, fnCurFile As Variant
Dim cFiles, cSheets As Integer
Dim wkCurSheet As Worksheet

Dim wbCurBook, wbSrcBook As Workbook

fnList = Application.GetOpenFilename(FileFilter:="Microsoft Excel Workbooks (*.xls;*.xlsx;*.xlsm),*.xls;*.xlsx;*.xlsm", Title:="Choose Excel files to merge", MultiSelect:=True)
If (vbBoolean <> VarType(fnList)) Then
If (UBound(fnList) > 0) Then
cFiles = 0
cSheets = 0
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Set wbCurBook = ActiveWorkbook
For Each fnCurFile In fnList
cFiles = cFiles + 1
Set wbSrcBook = Workbooks.Open(Filename:=fnCurFile)
For Each wkCurSheet In wbSrcBook.Sheets
cSheets = cSheets + 1
wkCurSheet.Copy after:=wbCurBook.Sheets(wbCurBook.Sheets.Count)
Next
wbSrcBook.Close SaveChanges:=False
Next
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
MsgBox "Worked on " & cFiles & " files" & vbCrLf & "Joined " & cSheets & " worksheets", Title:="Merging Multiple Excel Files"
End If
Else
MsgBox "No File is Selected", Title:="Merging Multiple Excel files"
End If

End Sub
  • コード入力後、ウィンドウを閉じます。
  • 「表示」タブ>「マクロ」(ダブルクリック)を開きます。

複数のExcelファイルをCSVに一括変換する3つの方法【VBA・オンラインツール】

  • マクロ一覧から、作成したマクロ(ここでは Combine_Excel_Files)を選択し、「実行」をクリックします。

複数のExcelファイルをCSVに一括変換する3つの方法【VBA・オンラインツール】

  • ファイル選択ダイアログが開くので、1つのExcelファイルに統合したいファイルを選択します。
  • 対象ファイルを選んで「開く」をクリックしてください。

複数のExcelファイルをCSVに一括変換する3つの方法【VBA・オンラインツール】

  • 「開く」をクリックすると、各シートごとに読み込み画面が順番に表示されます。しばらくすると、処理結果を知らせるメッセージが表示されます。

複数のExcelファイルをCSVに一括変換する3つの方法【VBA・オンラインツール】

  • すると、3つの異なるExcelブックが、それぞれ独立したワークシートとしてアクティブなブックに読み込まれていることが確認できます。

複数のExcelファイルをCSVに一括変換する3つの方法【VBA・オンラインツール】

  • 次に、再び「開発」タブを開き、「Visual Basic」をクリックします。

複数のExcelファイルをCSVに一括変換する3つの方法【VBA・オンラインツール】

  • 「挿入」>「標準モジュール」を選択します。

複数のExcelファイルをCSVに一括変換する3つの方法【VBA・オンラインツール】

  • モジュールウィンドウに、以下のコードを入力します。
Sub Excel_TO_CSV()

Dim wrsh As Worksheet
Dim excsv As String

For Each wrsh In Application.ActiveWorkbook.Worksheets
wrsh.Copy
excsv = CurDir & "\" & wrsh.Name & ".csv"
Application.ActiveWorkbook.SaveAs Filename:=excsv, _
FileFormat:=xlCSV, CreateBackup:=False
Application.ActiveWorkbook.Saved = True
Application.ActiveWorkbook.Close
Next

End Sub
  • コード入力後、ウィンドウを閉じます。
  • 「表示」タブ>「マクロ」(ダブルクリック)を開きます。

複数のExcelファイルをCSVに一括変換する3つの方法【VBA・オンラインツール】

  • マクロ一覧から、作成したマクロ(ここでは Excel_TO_CSV)を選択し、「実行」をクリックします。

複数のExcelファイルをCSVに一括変換する3つの方法【VBA・オンラインツール】

  • 実行後、ワークシート上でしばらく読み込み処理が行われます。
  • 処理が完了したら、PCのドキュメントフォルダを開いてください。このディレクトリ内に変換済みのCSVファイルが出力されています。
  • 各ファイルの拡張子がCSV形式になっていることを確認できます。

複数のExcelファイルをCSVに一括変換する3つの方法【VBA・オンラインツール】

  • Dataset_1を開くと、Excelワークシートから変換されたCSV形式のファイルであることがわかります。

複数のExcelファイルをCSVに一括変換する3つの方法【VBA・オンラインツール】

関連記事:Excelを開かずにCSVへ変換する4つの簡単な方法

方法3:オンライン変換ツールを活用する

インターネットに接続できる環境であれば、これが最も手軽な変換方法でしょう。必要なファイルをアップロードして「変換」ボタンを押すだけでよく、変換完了後にファイルをダウンロードするだけです。

手順

  • 「XLSX (EXCEL) to CSV (Online & Free) — Convertio」にアクセスします。複数のExcelシートをCSV形式に変換できる、非常に優れたオンライン変換サービスです。
  • 入力形式と出力形式を選択します。ここでは入力形式をXLSX、出力形式をCSVに設定します。
  • 次に、サイト上の「Choose Files(ファイルを選択)」アイコンをクリックします。

複数のExcelファイルをCSVに一括変換する3つの方法【VBA・オンラインツール】

  • ファイルブラウザが開くので、変換したいファイルを選択して「開く」をクリックします。今回はDataset_1Dataset_2Dataset_3を選択しました。

複数のExcelファイルをCSVに一括変換する3つの方法【VBA・オンラインツール】

  • 3つのファイルがサイトにアップロードされ、出力形式がCSVと表示されます。確認できたら「Convert(変換)」をクリックしましょう。

複数のExcelファイルをCSVに一括変換する3つの方法【VBA・オンラインツール】

  • 「Convert」をクリックすると、変換処理が開始されます。
  • 変換が完了したら、各ファイルの右側にある「Download(ダウンロード)」をクリックして、変換済みファイルを保存します。

複数のExcelファイルをCSVに一括変換する3つの方法【VBA・オンラインツール】

  • ダウンロード完了後、ダウンロードフォルダを開くと、すべてのExcelファイルがCSV形式に変換されていることがわかります。

複数のExcelファイルをCSVに一括変換する3つの方法【VBA・オンラインツール】

  • Dataset_1を開いて確認してみましょう。
  • ファイルがCSVファイルとして開ければ、変換は成功です。

複数のExcelファイルをCSVに一括変換する3つの方法【VBA・オンラインツール】

関連記事:Excelファイルを自動的にCSVへ変換する3つの簡単な方法

まとめ

本記事では、「複数のExcelファイルをCSVに変換する方法」という課題に対して、3つの異なるアプローチをご紹介しました。使用したのは、2種類のVBAによる方法と、1つのオンライン変換ツールによる方法です。

これらの中で最も手軽で時間のかからないのは、オンライン変換ツールを使う方法です。VBAを使う方法も処理時間は短いものの、事前にVBAに関する基礎知識が必要となります。一方、オンラインツールであればそのような前提知識は不要です。

なお、この記事で紹介した方法を練習できるように、マクロ有効ブックも添付されていますので、ぜひ実際に試してみてください。

ご質問やフィードバックがあれば、お気軽にコメント欄からお寄せください。コミュニティ改善のためのご提案も歓迎いたします。

関連記事

  • マクロでExcelをパイプ区切りのテキストファイルに変換する方法(3選)
  • カンマ区切りのテキストファイルとしてExcelファイルを変換する方法(3選)
  • Excelをダブルクォーテーション付きのCSVで保存する方法(3選)
  • 【解決済み】Excelがカンマ付きCSVを保存できないときの対処法(7つの解決策)
  • Excelをカンマ区切りのCSVファイルに変換する2つの簡単な方法
  1. Excelで2つのCSVファイルを比較する6つの簡単な方法

    Microsoft Excelは非常に強力なソフトウェアであり、その豊富なツールや機能を使えば、データに対してさまざまな操作を行うことができます。業務の中では、複数のCSVファイルを比較する必要に迫られることも少なくありません。一致するデータを見つけたい場合も、差分を確認したい場合も、Excelにはいくつかの有効な方法があります。この記事では、Excelで2つのCSVファイルを比較するための6つの簡単かつ迅速な方法をご紹介します。それでは、順番に見ていきましょう。 より理解を深め、実際に練習してみたい方は、以下のCSVファイルをダウンロードしてご利用ください。 Excelで2つのCSVファイル

  2. ExcelファイルをPDFに変換する4つの方法|初心者向けに手順を徹底解説

    データや数値を日常的に扱うお仕事をされている方なら、Microsoft ExcelやGoogleスプレッドシートをお使いのことでしょう。しかし、Excelファイルを誰かと共有する前に、必ずPDFに変換してから送るのがベストプラクティスであることをご存じでしょうか? この記事では、ExcelファイルをPDFに変換する具体的な方法をご紹介します。まずは、なぜExcelシートをPDFに変換すべきなのか、その理由から見ていきましょう。 ExcelをPDFに変換すべき理由 PDF化することでExcelシートが保護され、編集できなくなります。受け取った相手が書式や数式を勝手に変更したり、データを改ざんし