EXCEL TOOLS
Excel Add-ins ที่พัฒนาโดยคุณสันติพงศ์ ณสุย (MVP Excel 2010-2020) ด้วยภาษา C# เพื่อแก้ไขปัญหาไฟล์ใหญ่ คำนวณนาน ทำงานช้า จัดการข้อมูลต่าง ๆ ที่ทำงานประจำวันได้อย่างสะดวกรวดเร็ว สนใจคลิกไปดูได้ที่นี่ครับ => Excel Tools
Excel Add-ins ที่พัฒนาโดยคุณสันติพงศ์ ณสุย (MVP Excel 2010-2020) ด้วยภาษา C# เพื่อแก้ไขปัญหาไฟล์ใหญ่ คำนวณนาน ทำงานช้า จัดการข้อมูลต่าง ๆ ที่ทำงานประจำวันได้อย่างสะดวกรวดเร็ว สนใจคลิกไปดูได้ที่นี่ครับ => Excel Tools
[code]
และปิดด้วย [/code]
ตัวอย่างเช่น [code]dim r as range[/code]
เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)Code: Select all
FileCopy SourceFile, DestinationFile
Code: Select all
FileSystemObject.CopyFile "SourceFile", "DestinationFile "
คำสั่งแรกเป็นคำสั่งของ VBA โดยตรงไม่ต้องผ่าน Reference ส่วนคำสั่งที่สองเป็นของ Reference ที่ชื่อว่า FileSystemObject ที่จะต้องสร้าง Object ของมันขึ้นมาก่อนด้วยฟังก์ชัน CreateObejct ถึงจะใช้ฟังก์ชันของมันได้ การใช้งานแบบที่เขียนมาถามนี้เรียกว่า Late binding หากเป็น Early binding จะต้องไป Add Reference เข้ามาก่อนผ่านเมนู Tools > References เช่นนี้เป็นต้น10idlnw wrote: ↑Mon Jun 20, 2022 11:13 pm vba เวลาก๊อปปี้ไฟล์กับก๊อปปี้แบบCode: Select all
FileCopy SourceFile, DestinationFile
ดูเหมือนแบบที่สองจะยาวกว่าและดูเหมือนยุ่งยากกว่า อยากรู้ว่ามันต่างกันยังไงครับCode: Select all
FileSystemObject.CopyFile "SourceFile", "DestinationFile "
การใช้งานสิ่งเหล่านี้ขึ้นอยู่กับเป้าหมายที่ต้องการว่าต้องการ Property ตัวไหน หากเป็นแค่ Path, ชื่อไฟล์ ไม่จำเป็นต้องไปใช้ FileSystemObject เข้ามาช่วยเพราะจะยุ่งยากกว่า แต่หากต้องการเวลาของการ Create, Update ไฟล์ จึงควรใช้ FileSystemObject ครับ10idlnw wrote: ↑Mon Jun 20, 2022 11:13 pm อีกตัวอย่างเช่นหาไฟล์ทั้งหมดในโฟลเดอร์ บางทีแค่ใช้ dir(folder) ก็ได้ แต่บางที่ ต้องประกาศตัวแปรต้องCode: Select all
FSO CreateObject
หรือเวลาจะดึงชื่อ ผมลองแค่Code: Select all
CreateObject("Scripting.FileSystemObject")
ก็ได้แล้ว แต่บางที่ต้องใช้Code: Select all
thisworkbook.fullname
Code: Select all
CreateObject("Scripting.FileSystemObject").getFilename(filename)
สิ่งเหล่านี้ต้องผ่านการใช้งานมาสักระยะทั้งมีงานที่จำเป็นต้องใช้ข้อมูลเฉพาะเรื่องแล้วจะทราบว่าสิ่งที่ Excel มีให้มานั้นเพียงพอกับการใช้งานหรือไม่ และเมื่อไม่มีจึงจะไปพึ่งพาพวก Reference ต่าง ๆ เข้ามาช่วย แม้แต่การใช้งาน Word หรือ Outlook หากจะให้สะดวกในการใช้งานก็ควรเลือก Add Reference เข้ามาก่อน เพราะการทำเช่นนี้เมื่อเขียนอ้างอิงถึง Property และ Method ต่าง ๆ จะมี Intellisence เข้ามาช่วยให้เขียนได้ง่ายกว่าการ Create Object ครับ