Visual Basic for Applications:
การบันทึกล็อก

วิธีการ:

ใน VBA, ไม่มีกรอบงานการบันทึกที่สร้างไว้ล่วงหน้าเหมือนในภาษาอื่นๆ อย่างไรก็ตาม, การทำให้กลไกการบันทึกที่ง่ายเป็นเรื่องง่าย ด้านล่างเป็นตัวอย่างวิธีสร้างตัวบันทึกไฟล์พื้นฐาน

  1. การเขียนลงไฟล์บันทึก: ตัวอย่างฟังก์ชันนี้, LogMessage, เขียนข้อความลงในไฟล์ข้อความพร้อมตราประทับเวลา
Sub LogMessage(message As String)
    Dim logFilePath As String
    Dim fileNum As Integer
    
    ' ระบุเส้นทางของไฟล์บันทึก
    logFilePath = ThisWorkbook.Path & "\log.txt"
    
    ' รับหมายเลขไฟล์ที่ใช้งานได้ต่อไป
    fileNum = FreeFile()
    
    ' เปิดไฟล์เพื่อเพิ่มเติมข้อมูล
    Open logFilePath For Append As #fileNum
    
    ' เขียนตราประทับเวลาและข้อความบันทึก
    Print #fileNum, Now & ": " & message
    
    ' ปิดไฟล์
    Close #fileNum
End Sub

เพื่อบันทึกข้อความ, เพียงแค่เรียก LogMessage("ข้อความที่นี่") สิ่งนี้จะสร้างรายการใน log.txt อย่าง:

4/30/2023 3:45:32 PM: ข้อความที่นี่
  1. การอ่านจากไฟล์บันทึก: เพื่ออ่านและแสดงเนื้อหาของไฟล์บันทึก:
Sub ReadLogFile()
    Dim logFilePath As String
    Dim fileContent As String
    Dim fileNum As Integer
    
    logFilePath = ThisWorkbook.Path & "\log.txt"
    fileNum = FreeFile()
    
    ' เปิดไฟล์เพื่ออ่าน
    Open logFilePath For Input As #fileNum
    
    ' อ่านเนื้อหาไฟล์ทั้งหมด
    fileContent = Input(LOF(fileNum), fileNum)
    
    ' ปิดไฟล์
    Close #fileNum
    
    ' แสดงเนื้อหาไฟล์
    MsgBox(fileContent)
End Sub

การลงรายละเอียด

การบันทึกข้อมูลใน VBA, เนื่องจากขาดกรอบงานการบันทึกเนทีฟ, มักจะถูกดำเนินการผ่านการดำเนินการไฟล์พื้นฐานหรือโดยใช้ประโยชน์จากวัตถุ COM ภายนอกเพื่อความต้องการที่ซับซ้อนมากขช้น เช่น การบันทึกลงฐานข้อมูลหรือการโต้ตอบกับ Windows Event Log ทางประวัติศาสตร์, การบันทึกใน VBA เป็นวิธีการหลีกเลี่ยงข้อจำกัดที่เกิดจากเครื่องมือจัดการข้อผิดพลาดและการแก้ปัญหาของมันที่เรียบง่าย แม้ว่าจะมีประสิทธิภาพ, การจัดการไฟล์โดยตรงสำหรับการบันทึกเป็นเรื่องพื้นฐานและอาจไม่มีประสิทธิผลกับปริมาณข้อมูลขนาดใหญ่หรือภายใต้คองเคอเรนซีสูง สำหรับความสามารถในการบันทึกข้อมูลที่ซับซ้อนยิ่งขึ้น, โปรแกรมเมอร์มักจะหันไปใช้ไลบรารีภายนอกหรือรวมกับระบบที่ออกแบบมาเฉพาะสำหรับการบันทึก เช่น ELK stack (Elasticsearch, Logstash, Kibana) หรือ Splunk ผ่านการเรียกบริการเว็บหรือฐานข้อมูลกลาง ในขณะที่ VBA ไม่ได้นำเสนอความสะดวกสบายสมัยใหม่ตามที่พบในภาษาการเขียนโปรแกรมใหม่ๆ การทำความเข้าใจความสามารถและข้อจำกัดของมันช่วยให้โปรแกรมเมอร์สามารถใช้การบันทึกข้อมูลเป็นเครื่องมือที่มีประสิทธิภาพสำหรับการตรวจสอบและวินิจฉัยแอปพลิเคชันได้