Visual Basic for Applications:
การทำงานกับ CSV

วิธีการ:

Visual Basic for Applications (VBA) ทำให้การทำงานกับไฟล์ CSV เป็นเรื่องง่ายด้วยฟังก์ชันและเมธอดที่มีให้ตั้งแต่ต้นที่ช่วยให้สามารถอ่านและเขียนไปยังไฟล์เหล่านี้ได้อย่างไร้รอยต่อ ด้านล่างคือตัวอย่างที่แสดงถึงการดำเนินการพื้นฐานกับไฟล์ CSV

การอ่านไฟล์ CSV:

Sub ReadCSV()
    Dim filePath As String
    filePath = "C:\example.csv"
    
    Open filePath For Input As #1
    
    Do Until EOF(1)
        Dim line As String
        Line Input #1, line
        Dim dataFields() As String
        dataFields = Split(line, ",")
        
        'ประมวลผลอาร์เรย์ dataFields ตามที่ต้องการ
        Debug.Print Join(dataFields, ";") 'ตัวอย่างผลลัพธ์ที่แสดงการเปลี่ยนจากจุลภาคเป็นอัฒภาค
    Loop
    
    Close #1
End Sub

การเขียนไปยังไฟล์ CSV:

Sub WriteCSV()
    Dim filePath As String
    filePath = "C:\output.csv"
    Dim dataToWrite As String
    dataToWrite = "ID,Name,Age" & vbCrLf & "1,John Doe,30" & vbCrLf & "2,Jane Doe,29"
    
    Open filePath For Output As #1
    Print #1, dataToWrite
    Close #1
End Sub

ตัวอย่างผลลัพธ์ใน output.csv:

ID,Name,Age
1,John Doe,30
2,Jane Doe,29

การศึกษาลึก

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

ใน Visual Basic for Applications การจัดการกับไฟล์ CSV ส่วนใหญ่ทำผ่านการดำเนินการไฟล์พื้นฐาน ตามที่แสดงในตัวอย่างก่อนหน้านี้ ไม่มีการรองรับการแยกวิเคราะห์ CSV โดยตรงเช่นเดียวกับในภาษาที่ทันสมัยกว่า (เช่น โมดูล csv ของ Python) ที่มอบการควบคุมและความสะดวกมากขึ้นในการจัดการข้อมูล CSV

สำหรับการดำเนินการที่ซับซ้อนกว่าหรือเมื่อทำงานกับไฟล์ CSV ขนาดใหญ่ โปรแกรมเมอร์อาจหาทางเลือกที่ดีกว่านอกเหนือจาก VBA บริสุทธิ์ เช่น การใช้ไลบรารีภายนอกหรือการใช้ภาษาโปรแกรมมิ่งอื่นที่มีความสามารถในการจัดการกับ CSV ที่ซับซ้อนขึ้น อย่างไรก็ตามสำหรับงานเกี่ยวกับไฟล์ CSV ที่เรียบง่าย VBA มักเพียงพอและง่ายต่อการใช้งาน โดยมอบวิธีแก้ปัญหาที่รวดเร็วสำหรับแอพพลิเคชั่นที่ใช้ Excel หรือการอัตโนมัติซอฟต์แวร์ของ Microsoft Office อื่นๆ