ชื่อเต็มของ CSV คือ Comma Separated Value หมายถึงค่าใน CSV ถูกแยกด้วยคอมม่าเท่านั้น นี่คือรูปแบบข้อมูลที่สำคัญในการจัดการฐานข้อมูล เรายังใช้ Excel ในโครงการจัดการข้อมูลมากมาย ดังนั้นการแลกเปลี่ยนข้อมูลระหว่างสองรูปแบบนี้จึงเป็นเรื่องปกติ แม้เราจะแปลงไฟล์ CSV เป็น Excel ได้ง่ายด้วยฟีเจอร์ Text to Column แต่สำหรับการแปลง Excel หลายไฟล์เป็น CSV ไม่มีวิธีตรงไปตรงมาจนถึงปัจจุบัน ต้องใช้ VBA หรือเครื่องมือออนไลน์ วิธีการแปลง Excel หลายไฟล์เป็น CSV จะอธิบายพร้อมคำอธิบายที่เพียงพอ
ดาวน์โหลด Practice Workbook ด้านล่าง
3 วิธีที่เหมาะสมในการแปลง Excel หลายไฟล์เป็น CSV
เพื่อการสาธิต เราจะใช้ชุดข้อมูลต่อไปนี้ ซึ่งเข้าใจง่าย มีหัวตาราง Date of Purchase, Region, Product, และ Quantity

1. ใช้ VBA แปลง Excel หลายไฟล์เป็น CSV
การใช้ VBA Macro เรียบง่ายสามารถลดเวลาในการ แปลง Excel หลายไฟล์เป็น CSV ได้มาก วิธีนี้จะโหลดไฟล์ Excel โดยตรงและแปลงเป็นไฟล์รูปแบบ CSV
ขั้นตอน
- ไปที่แท็บ Developer แล้วคลิก Visual Basic

- คลิก Insert > Module.

- ในหน้าต่าง Module ใส่โค้ดต่อไปนี้
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
- ปิดหน้าต่าง
- ไปที่แท็บ View > Macros (Double click).

- หลังคลิก View Macros เลือก Macro ที่สร้างตอนนี้ ชื่อคือ convert_Excel-to CSV แล้วคลิก Run.

- หลังคลิก Run จะมีหน้าต่าง Browser ใหม่ เลือกโฟลเดอร์ที่เก็บ Excel หลายไฟล์ คลิก OK.

- หน้าต่างอีกอันจะเปิดถามตำแหน่งของไฟล์ CSV หลังแปลง เลือกโฟลเดอร์ปลายทาง คลิก OK.

- จะเห็นไอคอนโหลดหมุน หลังจากนั้นตรวจสอบโฟลเดอร์ปลายทางสำหรับไฟล์ CSV ที่แปลงแล้ว
- ในโฟลเดอร์ปลายทาง จะเห็นไฟล์ CSV ที่แปลงแล้ว 3 ไฟล์ และนามสกุลแสดงเป็น CSV

- คลิก Dataset_1 เพื่อตรวจสอบ
- หลังคลิกจะเห็นไฟล์เปิดและแสดงเป็นไฟล์ CSV ไม่ใช่ Excel
- ยืนยันว่าการแปลงสำเร็จ

- คลิก Dataset_2 ตรวจสอบ
- เห็นไฟล์เปิดเป็น CSV แปลงสำเร็จ

- คลิก Dataset_3 ตรวจสอบ
- เห็นไฟล์เปิดเป็น CSV แปลงสำเร็จ

อ่านเพิ่มเติม: How to Convert Excel File to CSV Format (5 Easy Ways)
2. รวม Excel หลายไฟล์และแปลงเป็น CSV
เราจะรวม Excel หลายไฟล์เป็น Workbook เดียวเป็น Worksheets แล้วส่งออก Worksheets นั้นเป็น CSV แยกกัน
ขั้นตอน
- ไปที่แท็บ Developer คลิก Visual Basic.

- คลิก Insert > Module.

- ในหน้าต่าง Module ใส่โค้ดต่อไปนี้
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
- ปิดหน้าต่าง
- ไปที่แท็บ View > Macros (Double click).

- หลังคลิก View Macros เลือก Macro ที่สร้าง ชื่อ Combine_Excel_Files คลิก Run.

- จะมีหน้าต่าง Browser ใหม่ เลือกไฟล์ที่ต้องการรวมเป็น Excel เดียว
- เลือกไฟล์ คลิก Open.

- หลังคลิก Open จะมีหน้าจอโหลดทีละชีท หลังสักครู่จะมีหน้าต่างข้อความ

- จะเห็น Excel Workbook 3 ไฟล์ โหลดเป็น Worksheets แยกกันใน Active Workbook

- ไปที่แท็บ Developer คลิก Visual Basic.

- คลิก Insert > Module.

- ในหน้าต่าง Module ใส่โค้ดต่อไปนี้
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
- ปิดหน้าต่าง
- ไปที่แท็บ View > Macros (Double Click).

- หลังคลิก View Macros เลือก Macro ชื่อ Excel_TO_CSV คลิก Run.

- หลังคลิก Run จะมีช่วงโหลดใน Worksheet
- ไปที่โฟลเดอร์ Documents ในคอมพิวเตอร์ จะเห็นไฟล์ CSV ที่แปลงแล้ว
- จะสังเกตว่านามสกุลไฟล์แสดงเป็น CSV

- เปิด Dataset_1 จะเห็นไฟล์เป็นรูปแบบ CSV แปลงจาก Excel Worksheet

อ่านเพิ่มเติม: How to Convert Excel to CSV without Opening (4 Easy Methods)
3. ใช้เครื่องมือแปลงออนไลน์
หากมีอินเทอร์เน็ต นี่อาจเป็นวิธีง่ายที่สุดในการแปลง Excel เป็น CSV เพียงอัปโหลดไฟล์และกด Convert หลังเสร็จก็ดาวน์โหลดกลับมา
ขั้นตอน
- ไปที่ XLSX (EXCEL) to CSV (Online & Free) — Convertio เป็น Online Converter ที่ดีสำหรับแปลง Excel หลายชีทเป็น CSV
- เลือก Input และ Output format Input คือ XLSX Output เลือก CSV
- คลิกไอคอน Choose Files บนเว็บไซต์

- เมนูเรียกดูไฟล์จะเปิด เลือกไฟล์ที่ต้องการแปลง คลิก Open ในกรณีนี้เลือก Dataset_1, Dataset_2, Dataset_3

- ทั้งสามไฟล์อัปโหลดแล้ว รูปแบบปลายทางแสดง CSV คลิก Convert

- หลังคลิก Convert กระบวนการแปลงเริ่มต้น
- คลิก Download ด้านขวาของแต่ละไฟล์เพื่อดาวน์โหลด

- หลังดาวน์โหลดเสร็จ เปิดโฟลเดอร์ดาวน์โหลด จะเห็น Excel ทั้งหมดแปลงเป็น CSV แล้ว

- เปิด Dataset_1 ตรวจสอบ
- เห็นไฟล์เปิดเป็น CSV แปลงสำเร็จ

อ่านเพิ่มเติม: How to Convert Excel Files to CSV Automatically (3 Easy Methods)
สรุป
สรุปคือ คำถาม "how to convert multiple Excel files into CSV" ได้รับคำตอบ 3 วิธี ใช้ 2 วิธี VBA และ 1 วิธี Online Converter ในทุกวิธี วิธี Online Conversion ง่ายที่สุดและประหยัดเวลา VBA ก็ใช้เวลาน้อยแต่ต้องมีความรู้ VBA มาก่อน วิธีออนไลน์ไม่มีข้อกำหนดแบบนั้น
สำหรับปัญหานี้ มี Macro-enabled Workbook แนบมาให้ฝึกฝนวิธีเหล่านี้
สามารถถามคำถามหรือให้ข้อเสนอแนะผ่านส่วนความคิดเห็น ข้อเสนอแนะสำหรับชุมชน ExcelDemy จะได้รับการชื่นชมสูง
บทความที่เกี่ยวข้อง
- Macro to Convert Excel to Pipe Delimited Text File (3 Methods)
- How to Convert Excel File to Text File with Comma Delimited (3 Methods)
- Save Excel as CSV with Double Quotes (3 Simplest Methods)
- [Fixed!] Excel Not Saving CSV with Commas (7 Possible Solutions)
- Convert Excel to Comma Delimited CSV File (2 Easy Ways)