บทความนี้แสดงวิธี แปลงไฟล์ Excel เป็น CSV (comma-separated values) หรือรูปแบบคั่นด้วยจุลภาค ไฟล์ CSV เก็บข้อมูลโดยไม่มีการจัดรูปแบบเหมือน Excel ทำให้ข้อมูลเข้าถึงและใช้งานได้ง่ายขึ้นในซอฟต์แวร์ต่างๆ รวมถึงเขียนโค้ดด้วย รูปภาพด้านล่างสรุปจุดประสงค์ของบทความนี้ โปรดอ่านต่อเพื่อเรียนรู้วิธีการ

คุณสามารถดาวน์โหลดไฟล์ฝึกปฏิบัติได้จากปุ่มดาวน์โหลดด้านล่าง
2 วิธีง่ายแปลง Excel เป็นไฟล์ CSV คั่นจุลภาค
1. แปลงชีทงาน Excel เป็นไฟล์ CSV คั่นจุลภาค
สมมติคุณมีสมุดงานที่มี 2 ชีทชื่อ Names และ Sales คุณสามารถแปลงแต่ละชีทเป็นไฟล์ CSV ทีละชีท โดยทำตามขั้นตอนด้านล่าง

📌 ขั้นตอน
- ไปที่ชีทที่ต้องการแปลง กด F12 เพื่อเปิดหน้าต่าง Save As หรือเลือก File >> Save As
- เลือกตำแหน่งที่ต้องการบันทึก สามารถเปลี่ยนชื่อไฟล์ได้
- คลิกที่กล่องดรอปดาวน์ของตัวเลือก Save as type

- จะเห็นรายการรูปแบบไฟล์ เลือก CSV (Comma delimited) (*.csv) จะได้ผลลัพธ์ที่ต้องการ แต่ถ้ามีอักขระต่างประเทศในข้อมูล ให้เลือก CSV UTF-8 (Comma delimited) (*.csv) ส่วน CSV (Machintosh) (*.csv) และ CSV (MS-DOS) เป็นสำหรับระบบปฏิบัติการ Machintosh และ MS-DOS ตามลำดับ

- เลือกประเภทไฟล์ที่ถูกต้อง แล้วคลิก Save

- Excel จะแสดงคำเตือนถ้าสมุดงานมีหลายชีท ให้คลิก OK เพื่อแปลงเฉพาะชีทที่ใช้งานอยู่

- ชีทที่ใช้งานอยู่จะถูกแปลงเป็นไฟล์ CSV แต่ชื่อชีทในสมุดงานเดิมจะเปลี่ยนเป็นชื่อไฟล์ที่ใช้บันทึก CSV จะมีคำเตือนเรื่องการสูญเสียข้อมูล สามารถปิดสมุดงานโดยไม่บันทึกได้

- ไปที่ตำแหน่งไฟล์ที่กำหนด จะพบไฟล์ CSV ที่แปลงแล้ว

- เปิดไฟล์ด้วย Notepad จะเห็นผลลัพธ์ดังภาพ

- ไปที่ชีทอีกชีท และทำซ้ำขั้นตอนเดิม ครั้งนี้ใช้ชื่อชีทเป็นชื่อไฟล์

- จะได้ผลลัพธ์คล้ายกัน

อ่านเพิ่มเติม: วิธีแปลงไฟล์ Excel เป็น CSV อัตโนมัติ (3 วิธีง่าย)
2. แปลงสมุดงาน Excel ทั้งเล่มเป็นรูปแบบ CSV (คั่นจุลภาค)
สามารถใช้ Excel VBA แปลงทุกชีทพร้อมกันได้ ทำตามขั้นตอนด้านล่าง
📌 ขั้นตอน
- กด ALT+F11 เปิดหน้าต่าง VBA เลือก Insert >> Module จะได้โมดูลว่างใหม่

- คัดลอกโค้ดด้านล่างด้วยปุ่มคัดลอก
Sub ExcelToCSV() Dim sh As Worksheet Dim file_path As String Application.ScreenUpdating = False file_path = ActiveWorkbook.path & "\" & _ Left(ActiveWorkbook.Name, InStr(ActiveWorkbook.Name, ".") - 1) For Each sh In Worksheets sh.Copy ActiveWorkbook.SaveAs Filename:=file_path & "-" & sh.Name & ".csv", _ FileFormat:=xlCSV, CreateBackup:=False ActiveWorkbook.Close False Next Application.ScreenUpdating = True End Sub
- วางโค้ดที่คัดลอกไว้ในหน้าต่างโมดูล

- กด F5 เพื่อรันโค้ด ไปที่ตำแหน่งสมุดงาน จะเห็นทุกชีทถูกแปลงเป็นไฟล์ CSV แล้ว

- บันทึกสมุดงานเป็น macro-enabled workbook ไม่งั้นจะสูญเสียโค้ด
คำอธิบายโค้ด VBA:
Sub ExcelToCSV()
เขียนโค้ดภายในกระบวนย่อยนี้
Dim sh As Worksheet
Dim file_path As String
ประกาศตัวแปรที่จำเป็น
Application.ScreenUpdating = False
ทำให้ VBA ทำงานเบื้องหลัง โค้ดทำงานเร็วขึ้น
file_path = ActiveWorkbook.path & “\” & _
Left(ActiveWorkbook.Name, InStr(ActiveWorkbook.Name, “.”) – 1)
กำหนดค่าตัวแปร เก็บเฉพาะชื่อไฟล์ ไม่รวมนามสกุล
For Each sh In Worksheets
ลูป For Loop นี้วนลูปผ่านทุกชีท
sh.Copy
คัดลอกชีทงาน
ActiveWorkbook.SaveAs Filename:=file_path & “-” & sh.Name & “.csv”, _
FileFormat:=xlCSV, CreateBackup:=False
บันทึกสมุดงานเป็นไฟล์ CSV ในพาธเดียวกับไฟล์ต้นทาง
ActiveWorkbook.Close False
หยุด VBA ไม่ให้ปิดสมุดงานต้นทาง
Application.ScreenUpdating = True
คืนค่าการอัปเดตหน้าจอเป็นค่าเริ่มต้น
อ่านเพิ่มเติม: วิธีใช้ Macro แปลงไฟล์ Excel หลายไฟล์เป็น CSV
แปลง Excel เป็น CSV ด้วยตัวคั่นต่างๆ (Pipe, Semicolon, Slash, ฯลฯ)
จนตอนนี้เราเรียนรู้การแปลง Excel เป็น CSV (Comma Separated Values) ด้วยจุลภาค แต่สามารถใช้ pipe, semicolon หรือตัวคั่นอื่นได้โดยเปลี่ยนการตั้งค่า Windows เริ่มต้น ในส่วนนี้จะอธิบายขั้นตอนอย่างง่าย
ทำตามขั้นตอนด้านล่างหากต้องการใช้ตัวคั่นอื่น (/ ; | ฯลฯ) แยกค่าในไฟล์ CSV
📌 ขั้นตอน
- กด Win+R เปิด Run พิมพ์ control คลิก OK จะไปที่ Control Panel

- เลือก Change date, time, or number formats จากการตั้งค่า Clock and Region

- เลือก Additional settings จากแท็บ Formats ในหน้าต่าง Region จะไปที่กล่องโต้ตอบ Customize Format

- เปลี่ยน List separator เป็นตัวคั่นที่ต้องการ ตั้งแต่นี้ทุกครั้งที่บันทึกชีทเป็น CSV ค่าจะถูกคั่นด้วยตัวคั่นนั้น
หมายเหตุ:
เพื่อใส่ pipe delimiter ให้กด SHIFT+Backslash(\)

อ่านเพิ่มเติม: Macro แปลง Excel เป็นไฟล์ข้อความคั่น Pipe (3 วิธี)
ข้อควรจำ
- บันทึกสมุดงานก่อนแปลงชีทเป็น CSV ปิดสมุดงานโดยไม่บันทึกหลังแปลง
- โค้ด VBA จะคั่นค่าใน CSV ตาม List separator ที่กำหนด
สรุป
ตอนนี้คุณรู้แล้วว่าจะแปลงไฟล์ Excel เป็นไฟล์รูปแบบ CSV ได้อย่างไร หวังว่าจะช่วยแก้ปัญหาของคุณได้ โปรดใช้ส่วนความคิดเห็นด้านล่างสำหรับคำถามหรือข้อเสนอแนะเพิ่มเติม คุณยังสามารถเยี่ยมชมบล็อก ExcelDemy เพื่อเรียนรู้เพิ่มเติมเกี่ยวกับ Excel ติดตามเราและเรียนรู้ต่อไป
บทความที่เกี่ยวข้อง
- วิธีแปลงไฟล์ Excel เป็นไฟล์ข้อความคั่นจุลภาค (3 วิธี)
- บันทึก Excel เป็น CSV พร้อมเครื่องหมายคำพูดคู่ (3 วิธีง่ายที่สุด)
- วิธีแปลงไฟล์ Excel หลายไฟล์เป็น CSV (3 วิธีที่เหมาะสม)
- [แก้ไขแล้ว!] Excel บันทึก CSV ไม่ได้ด้วยจุลภาค (7 วิธีแก้ไข)
- วิธีแปลง Excel เป็น CSV โดยไม่ต้องเปิดไฟล์ (4 วิธีง่าย)