Visual Basic for Applications:
การเขียนไฟล์ข้อความ
วิธีการ:
VBA มีวิธีการหลายอย่างในการเขียนลงไฟล์ แต่หนึ่งในวิธีการที่ง่ายที่สุดคือการใช้ FileSystemObject
นี่คือคู่มือขั้นตอนต่อขั้นตอนในการสร้างไฟล์ข้อความง่ายๆ และเขียนข้อมูลลงไปในนั้น:
อ้างอิง Microsoft Scripting Runtime: ขั้นแรก, ตรวจสอบให้แน่ใจว่าตัวแก้ไข VBA ของคุณสามารถเข้าถึง
FileSystemObject
ได้ ไปที่ Tools > References ในตัวแก้ไข VBA และเลือก “Microsoft Scripting Runtime”สร้างไฟล์ข้อความ: โค้ด 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!” เข้าไปก่อนปิดไฟล์เพื่อบันทึกการเปลี่ยนแปลง
- ผลลัพธ์ตัวอย่าง:
หลังจากที่ทำการเรียกใช้สคริปต์ 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 มักจะเกินกว่าข้อเสีย