VBA FileSystemObject (FSO) | วิธีเข้าถึง FileSystemObject

ไฟล์ Excel VBA FileSystemObject (FSO)

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

เราสามารถทำงานได้หลายอย่างโดยใช้ FSO เช่น“ เพื่อตรวจสอบว่าโฟลเดอร์นั้นพร้อมใช้งานหรือไม่” สร้างโฟลเดอร์หรือไฟล์ใหม่เปลี่ยนชื่อโฟลเดอร์หรือไฟล์ที่มีอยู่รับรายชื่อไฟล์ทั้งหมดในโฟลเดอร์และชื่อโฟลเดอร์ย่อยและ สุดท้ายเราสามารถคัดลอกไฟล์จากที่หนึ่งไปยังอีกที่หนึ่งได้

แม้ว่าจะมีฟังก์ชั่นอื่น ๆ ที่สามารถใช้งานกับโฟลเดอร์และไฟล์ได้ FSO ก็เป็นวิธีที่ง่ายที่สุดในการทำงานกับโฟลเดอร์และไฟล์โดยทำให้รหัส VBA เป็นระเบียบและตรง

เราสามารถเข้าถึง Objects ได้ 4 ประเภทด้วย FileSystemObject ด้านล่างนี้คือ

  1. ไดรฟ์:การใช้วัตถุนี้เราสามารถตรวจสอบได้ว่ามีไดรฟ์ที่กล่าวถึงหรือไม่เราจะได้รับชื่อพา ธ ประเภทของไดรฟ์และขนาดของไดรฟ์
  2. โฟลเดอร์:วัตถุนี้ช่วยให้เราตรวจสอบว่ามีโฟลเดอร์นั้นอยู่หรือไม่ เราสามารถสร้างลบแก้ไขคัดลอกโฟลเดอร์โดยใช้วัตถุนี้
  3. ไฟล์:ออบเจ็กต์นี้ช่วยให้เราตรวจสอบว่ามีไฟล์นั้นอยู่หรือไม่ เราสามารถสร้างลบแก้ไขคัดลอกไฟล์โดยใช้ออบเจ็กต์ vba นี้
  4. สตรีมข้อความ:วัตถุนี้ช่วยให้เราสร้างหรืออ่านไฟล์ข้อความ

วิธีการทั้งหมดข้างต้นมีวิธีการทำงานของตัวเอง ตามความต้องการของเราเราสามารถเลือกวิธีการของแต่ละวัตถุได้

วิธีการเปิดใช้งาน FileSystemObject

ไม่สามารถเข้าถึงได้ใน VBA เนื่องจากการเข้าถึงไฟล์และโฟลเดอร์เป็นงานภายนอกของ excel เราจึงต้องเปิดใช้งาน FileSystemObject ในการเปิดใช้งานให้ทำตามขั้นตอนด้านล่าง

ขั้นตอนที่ 1: ไปที่เครื่องมือ> การอ้างอิง

ขั้นตอนที่ # 2 - เลือกตัวเลือก 'Microsoft Scripting Runtime'

เลื่อนลงและเลือกตัวเลือก 'Microsoft Scripting Runtime' หลังจากเลือกตัวเลือกแล้วให้คลิกตกลง

ตอนนี้เราสามารถเข้าถึง FileSystemObject (FSO) ใน vba

สร้างอินสแตนซ์ของ FileSystemObject

เมื่อเปิดใช้งานตัวเลือก 'Microsoft Scripting Runtime' จากไลบรารี Objects แล้วเราจำเป็นต้องสร้างอินสแตนซ์ของ File System Object (FSO) ผ่านการเข้ารหัส

ในการสร้างอินสแตนซ์ก่อนอื่นให้ประกาศตัวแปรเป็นFileSystemObject

ดังที่เราเห็นFileSystemObjectปรากฏในรายการ IntelliSense ใน VBA สิ่งนี้จะไม่พร้อมใช้งานก่อนที่เราจะเปิดใช้งาน 'Microsoft Scripting Runtime'

เนื่องจาก FSO เป็นวัตถุเราจึงต้องตั้งค่าให้สร้างอินสแตนซ์ใหม่

ตอนนี้เราสามารถเข้าถึงตัวเลือกทั้งหมดของ FSO (FileSystemObject)

ตัวอย่างการใช้ VBA FileSystemObject

คุณสามารถดาวน์โหลด VBA FileSystemObject Excel Template ได้ที่นี่ - เทมเพลต VBA FileSystemObject Excel

ตัวอย่าง # 1 - ค้นหาพื้นที่ไดรฟ์ทั้งหมด

โค้ดด้านล่างนี้จะให้พื้นที่ทั้งหมดของไดรฟ์

รหัส:

 Sub FSO_Example1 () Dim MyFirstFSO As FileSystemObject Set MyFirstFSO = New FileSystemObject Dim DriveName As Drive Dim DriveSpace As Double Set DriveName = MyFirstFSO.GetDrive ("C:") 'Create new drive object DriveSpace = DriveName.FreeSpace' ซึ่งจะได้รับพื้นที่ว่าง ของไดรฟ์ "C" DriveSpace = DriveSpace / 1073741824 'ซึ่งจะแปลงพื้นที่ว่างเป็น GB DriveSpace = Round (DriveSpace, 2)' ปัดเศษพื้นที่ทั้งหมด MsgBox "Drive" & DriveName & "has" & DriveSpace & "GB" End ย่อย 

ทำลายรหัส

ขั้นแรกเราสร้างอินสแตนซ์ของ FSO

 Dim MyFirstFSO เป็น FileSystemObject ตั้งค่า MyFirstFSO = FileSystemObject ใหม่

ต่อไปเราได้ประกาศสองตัวแปร

 Dim DriveName เป็น Drive Dim DriveSpace เป็นสองเท่า 

เนื่องจาก DriveName เป็นตัวแปร Object เราจึงต้องตั้งค่านี้เป็น FSO ซึ่งเป็นหนึ่งในวิธี FSO เนื่องจากเราต้องการลักษณะเฉพาะของไดรฟ์เราจึงใช้ตัวเลือก Get Drive และกล่าวถึงชื่อไดรฟ์

 ตั้ง DriveName = MyFirstFSO.GetDrive ("C:")

ตอนนี้สำหรับตัวแปร DriveSpace อื่นเราจะกำหนดวิธีการพื้นที่ว่างของไดรฟ์ที่เรากำลังเข้าถึง

DriveSpace = DriveName.FreeSpace

ณ ตอนนี้สมการข้างต้นทำให้เรามีพื้นที่ว่างในไดรฟ์“ C” ดังนั้นเพื่อแสดงผลลัพธ์เป็น GB เราได้หารพื้นที่ว่างด้วย 1073741824

DriveSpace = DriveSpace / 1073741824

ต่อไปเราจะปัดเศษตัวเลข

DriveSpace = รอบ (DriveSpace, 2)

สุดท้ายแสดงผลลัพธ์ในกล่องข้อความ

MsgBox "Drive" & DriveName & "has" & DriveSpace & "GB"

เมื่อเรารันโค้ดด้วยตนเองหรือผ่านปุ่มทางลัด F5 จากนั้นในกล่องข้อความเราจะได้พื้นที่ว่างของไดรฟ์“ C”

ดังนั้นในคอมพิวเตอร์ของฉัน Drive C จึงมีหน่วยความจำเนื้อที่ว่าง 216.19 GB

ตัวอย่าง # 2 - ตรวจสอบว่ามีโฟลเดอร์อยู่หรือไม่

ในการตรวจสอบว่ามีโฟลเดอร์ใดอยู่หรือไม่ใช้รหัสด้านล่าง

หากมีโฟลเดอร์ที่กล่าวถึงก็จะแสดงกล่องข้อความว่า“ The Mentioned Folder is Available”หากไม่มีจะแสดงกล่องข้อความ VBA เป็น“ The Mentioned Folder is Not Available”

รหัส:

 Sub FSO_Example2() Dim MyFirstFSO As FileSystemObject Set MyFirstFSO = New FileSystemObject If MyFirstFSO.FolderExists("D:\Excel Files\VBA\VBA Files") Then MsgBox "The Mentioned Folder is Available" Else MsgBox "The Mentioned Folder is Not Available" End If End Sub 

Run this code through the excel Shortcut key F5 or manually, then see the result.

Example #3 – Check Whether the File Exists or Not

Below code will check whether the mentioned file is available or not.

Code:

 Sub FSO_Example3() Dim MyFirstFSO As FileSystemObject Set MyFirstFSO = New FileSystemObject If MyFirstFSO.FileExists("D:\Excel Files\VBA\VBA Files\Testing File.xlsm") Then MsgBox "The Mentioned File is Available" Else MsgBox "The Mentioned File is Not Available" End If End Sub 

Run this code manually or using the F5 key, then see the result.