Visual Basic for Applications:
การเขียนไฟล์ข้อความ

วิธีการ:

VBA มีวิธีการหลายอย่างในการเขียนลงไฟล์ แต่หนึ่งในวิธีการที่ง่ายที่สุดคือการใช้ FileSystemObject นี่คือคู่มือขั้นตอนต่อขั้นตอนในการสร้างไฟล์ข้อความง่ายๆ และเขียนข้อมูลลงไปในนั้น:

  1. อ้างอิง Microsoft Scripting Runtime: ขั้นแรก, ตรวจสอบให้แน่ใจว่าตัวแก้ไข VBA ของคุณสามารถเข้าถึง FileSystemObject ได้ ไปที่ Tools > References ในตัวแก้ไข VBA และเลือก “Microsoft Scripting Runtime”

  2. สร้างไฟล์ข้อความ: โค้ด VBA ต่อไปนี้แสดงวิธีการสร้างไฟล์ข้อความ และเขียนบรรทัดข้อความลงไปในนั้น

Sub WriteToFile()
    Dim fso As FileSystemObject
    Set fso = New FileSystemObject
    
    Dim textFile As Object
    ' พารามิเตอร์ CreateTextFile: (ชื่อไฟล์, เขียนทับ, Unicode)
    Set textFile = fso.CreateTextFile("C:\yourPath\example.txt", True, False)
    
    ' เขียนบรรทัดข้อความ
    textFile.WriteLine "Hello, VBA!"
    
    ' ปิดไฟล์
    textFile.Close
End Sub

สคริปต์นี้สร้าง (หรือเขียนทับหากมีอยู่แล้ว) ไฟล์ชื่อ example.txt ในไดเรกทอรีที่กำหนดและเขียน “Hello, VBA!” เข้าไปก่อนปิดไฟล์เพื่อบันทึกการเปลี่ยนแปลง

  1. ผลลัพธ์ตัวอย่าง:

หลังจากที่ทำการเรียกใช้สคริปต์ VBA ด้านบน, คุณจะพบไฟล์ที่มีชื่อว่า example.txt โดยมีเนื้อหาดังนี้:

Hello, VBA!

ลงลึก:

FileSystemObject (FSO), ซึ่งเป็นส่วนหนึ่งของไลบรารี Microsoft Scripting Runtime, มีชุดคุณสมบัติและวิธีการทำงานสำหรับการจัดการไฟล์มากมาย, ซึ่งขยายขอบเขตการทำงานเกินกว่าที่การจัดการไฟล์ใน VBA ดั้งเดิมมอบให้ (เช่น, Open, Print #, Write #) นอกจากการจัดการไฟล์, FSO ยังสามารถจัดการโฟลเดอร์และไดรฟ์ได้, ทำให้เป็นเครื่องมือที่มีประสิทธิภาพสำหรับการทำงานกับระบบไฟล์ใน VBA

อย่างไรก็ตาม, แม้ว่า FSO จะนำเสนอวิธีการที่ทันสมัยกว่าในการจัดการไฟล์ใน VBA, อาจทำให้เกิด overhead สำหรับงานง่ายๆ เมื่อเทียบกับคำสั่งการจัดการไฟล์อัตโนมัติของ VBA นอกจากนี้, เนื่องจาก FSO เป็นส่วนหนึ่งของไลบรารีภายนอก, ความสามารถในการย้ายเคลื่อนและความเข้ากันได้กับระบบอื่นๆ (เช่น, รุ่นก่อนๆ ของ Office, Mac Office) อาจเป็นประเด็นที่ต้องพิจารณา

ในบริบทที่ประสิทธิภาพ, ความเข้ากันได้, หรือความต้องการความเป็นอิสระจากส่วนประกอบภายนอกเป็นสิ่งสำคัญ, โปรแกรมเมอร์อาจพิจารณาใช้เทคนิคการจัดการไฟล์ที่ฝังไว้ใน VBA เอง อย่างไรก็ตาม, สำหรับการดำเนินการที่มีความซับซ้อนมากขึ้นหรือเมื่อทำงานในสภาพแวดล้อมที่ประเด็นเหล่านี้ไม่เป็นปัญหา (เช่น ในสถานที่ทำงานที่ควบคุมได้), ประโยชน์ของ FileSystemObject มักจะเกินกว่าข้อเสีย