VBA FileSystemObject (FSO) | Paano i-access ang FileSystemObject?

Excel VBA FileSystemObject (FSO)

VBA FileSystemObject(FSO) gumagana katulad ng FileDialog, ginamit upang makakuha ng pag-access sa iba pang mga file ng computer na pinagtatrabahuhan namin. Maaari din nating mai-edit ang mga file na ito ay nangangahulugang basahin o isulat ang file. Gamit ang FSO maaari naming ma-access ang mga file, makatrabaho ang mga ito, baguhin ang mga file at folder. Ang FSO ay ang mahalagang tool ng API na maaari nating ma-access sa VBA. Bilang bahagi ng proyekto ng VBA, maaaring kailanganin nating mag-access ng ilang mga folder at file sa aming computer upang matapos ang trabaho.

Maaari tayong gumawa ng maraming mga gawain sa pamamagitan ng paggamit ng FSO tulad ng "upang suriin kung ang folder ay magagamit o hindi", Lumikha ng bagong folder o mga file, palitan ang pangalan ng mayroon nang folder o mga file, makuha ang listahan ng lahat ng mga file sa folder at din mga pangalan ng subfolder, at sa wakas, maaari naming kopyahin ang mga file mula sa isang lokasyon papunta sa isa pa.

Kahit na may iba pang mga pagpapaandar na magagamit upang gumana sa mga folder at file, ang FSO ay ang pinakamadaling paraan upang gumana sa mga folder at file sa pamamagitan ng pagpapanatiling maayos at tuwid ang VBA code.

Maaari naming ma-access ang 4 na uri ng Mga Bagay sa FileSystemObject. Nasa ibaba ang mga iyon.

  1. Magmaneho: Gamit ang bagay na ito maaari nating suriin kung mayroon o hindi ang nabanggit na drive, makukuha natin ang pathname, uri ng drive, at laki ng drive.
  2. Folder: Pinapayagan kami ng bagay na ito na suriin kung mayroon ang partikular na folder o hindi. Maaari kaming lumikha, magtanggal, magbago, kopyahin ang mga folder gamit ang object na ito.
  3. File: Pinapayagan kami ng bagay na ito na suriin kung mayroon ang partikular na file o wala. Maaari kaming lumikha, magtanggal, magbago, kopyahin ang mga file gamit ang vba object na ito.
  4. Text Stream: Pinapayagan kami ng bagay na ito na lumikha o magbasa ng mga file ng teksto.

Ang lahat ng mga pamamaraan sa itaas ay may kani-kanilang pamamaraan upang magtrabaho. Batay sa aming kinakailangan maaari naming piliin ang pamamaraan ng bawat bagay.

Paano Paganahin ang FileSystemObject?

Hindi ito madaling ma-access sa VBA. Dahil ang pag-access sa mga file at folder ay ang gawain sa labas ng excel kailangan namin upang paganahin ang FileSystemObject. Upang paganahin ang mga hakbang sa ibaba.

Hakbang # 1: Pumunta sa Mga Tool> Mga Sanggunian.

Hakbang # 2 - Piliin ang opsyong 'Microsoft Scripting Runtime'

Mag-scroll pababa at piliin ang opsyong 'Microsoft Scripting Runtime'. Matapos piliin ang mga pagpipilian mag-click sa OK.

Ngayon ay maaari naming ma-access ang FileSystemObject (FSO) sa vba.

Lumikha ng isang Instance ng FileSystemObject

Kapag ang pagpipiliang 'Microsoft Scripting Runtime' ay pinagana mula sa library ng Mga Bagay, kailangan naming lumikha ng halimbawa ng File System Object (FSO) sa pamamagitan ng pag-coding.

Upang likhain ang halimbawa unang ideklara ang variable bilang FileSystemObject.

Katulad ng nakikita natin FileSystemObject ay lilitaw sa listahan ng IntelliSense sa VBA. Hindi ito magagamit bago namin paganahin ang 'Microsoft Scripting Runtime'.

Dahil ang FSO ay isang bagay na kailangan namin upang itakda ito upang lumikha ng isang bagong halimbawa.

Ngayon ay maaari naming ma-access ang lahat ng mga pagpipilian ng FSO (FileSystemObject).

Mga halimbawa upang magamit ang VBA FileSystemObject

Maaari mong i-download ang Template ng VBA FileSystemObject Excel dito - VBA FileSystemObject Excel Template

Halimbawa # 1 - Hanapin ang Kabuuang Puwang ng Drive

Sa ibaba ng code ay ibibigay ang kabuuang puwang ng drive.

Code:

 Sub FSO_Example1 () Malabo ang MyFirstFSO Bilang FileSystemObject Itakda ang MyFirstFSO = Bagong FileSystemObject Dim DriveName Bilang Drive Dim DriveSpace Bilang Double Set DriveName = MyFirstFSO.GetDrive ("C:") 'Lumikha ng bagong drive object DriveSpace = DriveName.FreeSpace' ng drive na "C" DriveSpace = DriveSpace / 1073741824 'Ito ay magpapalit ng libreng puwang sa GB DriveSpace = Round (DriveSpace, 2)' Bilugan ang kabuuang puwang na MsgBox "Drive" & DriveName & "mayroong" & DriveSpace at "GB" End Sub 

Basagin ang Code.

Una, lumikha kami ng isang halimbawa ng FSO.

 Malabo ang MyFirstFSO Bilang FileSystemObject Itakda ang MyFirstFSO = Bagong FileSystemObject

Susunod, idineklara namin ang dalawang variable.

 Dim DriveName Bilang Drive Dim DriveSpace Bilang Doble 

Dahil ang DriveName ay isang variable ng Bagay kailangan naming itakda ito sa FSO isa sa pamamaraang FSO. Dahil kailangan namin ang katangian ng drive na ginamit namin ang pagpipiliang Get Drive at binanggit ang pangalan ng drive

 Itakda ang DriveName = MyFirstFSO.GetDrive ("C:")

Ngayon para sa isa pang variable na DriveSpace, itatalaga namin ang libreng paraan ng puwang ng drive na ina-access namin.

DriveSpace = DriveName.FreeSpace

Tulad ng ngayon, ang equation sa itaas ay makakakuha sa amin ng libreng puwang ng drive na "C". Kaya upang maipakita ang resulta sa GB na hinati namin ang libreng puwang ng 1073741824

DriveSpace = DriveSpace / 1073741824

Susunod, iikot namin ang numero.

DriveSpace = Round (DriveSpace, 2)

Panghuli, ipakita ang resulta sa Message Box.

Ang MsgBox "Drive" & DriveName & "ay may" & DriveSpace at "GB"

Kapag pinatakbo namin ang code nang manu-mano o sa pamamagitan ng shortcut key F5, pagkatapos ay sa kahon ng mensahe makukuha natin ang libreng puwang ng drive na "C".

Kaya, sa aking computer ang Drive C ay mayroong 216.19 GB ng libreng memorya ng puwang.

Halimbawa # 2 - Suriin Kung Umiiral ang Folder o Hindi

Upang suriin kung mayroon ang partikular na folder o hindi ginagamit ang code sa ibaba.

Kung ang nabanggit na folder ay magagamit pagkatapos ay ipapakita sa amin ang kahon ng mensahe bilang "Ang Nabanggit na Folder ay Magagamit", kung hindi ipapakita ang kahon ng mensahe ng VBA bilang "Ang Nabanggit na Folder ay Hindi Magagamit".

Code:

 Sub FSO_Example2 () Malabo ang MyFirstFSO Bilang FileSystemObject Itakda ang MyFirstFSO = Bagong FileSystemObject Kung MyFirstFSO.FolderExists ("D: \ Excel Files \ VBA \ VBA Files") Kung gayon MsgBox "Ang Nabanggit na Folder ay Magagamit na" Elect MsgBox "The Not Nabanggit Folder ay Magagamit na" Elect MsgBox "The Not Nabanggit Folder" Magagamit ang Iba't ibang Nabanggit na Folder Tapusin Kung Tapusin Sub 

Patakbuhin ang code na ito sa pamamagitan ng excel Shortcut key F5 o manu-mano, pagkatapos ay tingnan ang resulta.

Halimbawa # 3 - Suriin Kung Umiiral ang File o Wala

Susuriin sa ibaba ng code kung ang nabanggit na file ay magagamit o hindi.

Code:

 Sub FSO_Example3 () I-dim ang MyFirstFSO Bilang FileSystemObject Itakda ang MyFirstFSO = Bagong FileSystemObject Kung MyFirstFSO.FileExists ("D: \ Excel Files \ VBA \ VBA Files \ Testing File.xlsm") Pagkatapos MsgBox "Ang Nabanggit na File ay Magagamit" Ang Iba Pang MsgBox Hindi Magagamit ang File "End Kung End Sub 

Manu-manong patakbuhin ang code na ito o gamitin ang F5 key, pagkatapos ay tingnan ang resulta.