ВБА ФилеСистемОбјецт (ФСО) | Како приступити ФилеСистемОбјецт?

Екцел ВБА ФилеСистемОбјецт (ФСО)

ВБА ФилеСистемОбјецт(ФСО) ради слично ФилеДиалог-у, користи се за приступ другим датотекама рачунара на којем радимо. Такође можемо уредити ове датотеке, што значи да је читамо или пишемо. Коришћењем ФСО-а можемо приступити датотекама, радити са њима, мењати датотеке и фасцикле. ФСО је важан АПИ алат који можемо да приступимо помоћу ВБА. Као део ВБА пројекта, можда ћемо морати да приступимо неколико директоријума и датотека на рачунару да бисмо обавили посао.

Много задатака можемо да урадимо помоћу ФСО-а, попут „да проверимо да ли је фасцикла доступна или не“, Створимо нову фасциклу или датотеке, преименујемо постојећу мапу или датотеке, добијемо листу свих датотека у фасцикли, као и имена подмапа, и коначно, можемо копирати датотеке са једне локације на другу.

Иако постоје друге функције доступне за рад са директоријумима и датотекама, ФСО је најједноставнији начин рада са директоријумима и датотекама одржавањем ВБА кода уредним и равним.

Помоћу ФилеСистемОбјецт можемо приступити 4 типу Објеката. Испод су они.

  1. Погон: Помоћу овог објекта можемо проверити да ли поменути погон постоји или не, можемо добити назив путање, тип погона и величину погона.
  2. Мапа: Овај објекат нам омогућава да проверимо да ли одређена фасцикла постоји или не. Помоћу овог објекта можемо креирати, брисати, мењати, копирати фасцикле.
  3. Датотека: Овај објекат нам омогућава да проверимо да ли одређена датотека постоји или не. Помоћу овог вба објекта можемо креирати, брисати, мењати, копирати датотеке.
  4. Текстуални ток: Овај објекат нам омогућава стварање или читање текстуалних датотека.

Све горе наведене методе имају свој метод за рад. На основу наших захтева можемо одабрати методу сваког објекта.

Како омогућити ФилеСистемОбјецт?

Није лако доступан у ВБА. Будући да је приступ датотекама и фасциклама спољни задатак Екцела, морамо да омогућимо ФилеСистемОбјецт. Да бисте омогућили, следите кораке у наставку.

1. корак: Идите на Алати> Референце.

Корак # 2 - Изаберите опцију „Мицрософт Сцриптинг Рунтиме“

Померите се надоле и изаберите опцију „Мицрософт Сцриптинг Рунтиме“. Након одабира опција кликните на ОК.

Сада можемо да приступимо ФилеСистемОбјецт (ФСО) у вба.

Направите инстанцу ФилеСистемОбјецт

Једном када је омогућена опција „Мицрософт Сцриптинг Рунтиме“ из библиотеке објеката, треба да креирамо инстанцу Филе Систем Објецт (ФСО) путем кодирања.

Да бисте креирали инстанцу, прво прогласите променљиву као ФилеСистемОбјецт.

Као што видимо ФилеСистемОбјецт се појављује на листи ИнтеллиСенсе у ВБА. Ово не би било доступно пре него што омогућимо „Мицрософт Сцриптинг Рунтиме“.

Будући да је ФСО објекат, морамо га поставити да креира нову инстанцу.

Сада можемо приступити свим опцијама ФСО (ФилеСистемОбјецт).

Примери за употребу ВБА ФилеСистемОбјецт

Овај предложак ВБА ФилеСистемОбјецт Екцел можете преузети овде - ВБА ФилеСистемОбјецт Екцел предложак

Пример # 1 - Пронађите укупан простор за вожњу

Испод кода дати ће укупан простор погона.

Шифра:

 Суб ФСО_Екампле1 () Дим МиФирстФСО Ас ФилеСистемОбјецт Сет МиФирстФСО = Нев ФилеСистемОбјецт Дим ДривеНаме Ас Дриве Дим ДривеСпаце Ас Доубле Сет ДривеНаме = МиФирстФСО.ГетДриве ("Ц:") 'Цреате нев дриве објецт ДривеСпаце = ДривеНаме.ФрееСпаце' Ово ће добити слободан простор погона "Ц" ДривеСпаце = ДривеСпаце / 1073741824 'Ово ће претворити слободни простор у ГБ ДривеСпаце = Роунд (ДривеСпаце, 2)' Заокружите укупан простор МсгБок "Дриве" & ДривеНаме & "хас" & ДривеСпаце & "ГБ" Енд Суб 

Сломити кодекс.

Прво смо створили инстанцу ФСО.

 Затамни МиФирстФСО као ФилеСистемОбјецт Постави МиФирстФСО = Нови ФилеСистемОбјецт

Затим смо прогласили две променљиве.

 Дим ДривеНаме Ас Дриве Дим ДривеСпаце Ас Доубле 

С обзиром да је ДривеНаме Објецт променљива, ово морамо поставити на ФСО један од ФСО метода. С обзиром на то да су нам потребне карактеристике погона, користили смо опцију Гет Дриве и споменули назив погона

 Постави ДривеНаме = МиФирстФСО.ГетДриве ("Ц:")

Сада ћемо за другу променљиву ДривеСпаце доделити методу слободног простора за погон којем приступамо.

ДривеСпаце = ИмеНазива.ФрееСпаце

Од сада нам горња једначина може ослободити простор погона „Ц“. Дакле, да бисмо приказали резултат у ГБ, поделили смо слободни простор са 1073741824

ДривеСпаце = ДривеСпаце / 1073741824

Даље ћемо заокружити број.

ДривеСпаце = Роунд (ДривеСпаце, 2)

На крају, резултат покажите у оквиру за поруке.

МсгБок "Дриве" & ДривеНаме & "хас" & ДривеСпаце & "ГБ"

Када код покренемо ручно или помоћу пречице Ф5, тада ћемо у оквиру за поруке добити слободан простор на диску „Ц“.

Дакле, на мом рачунару Дриве Ц има 216,19 ГБ слободне меморије.

Пример # 2 - Проверите да ли мапа постоји или не

Да бисте проверили да ли одређена фасцикла постоји или не, користите доњи код.

Ако је поменута фасцикла доступна, приказаће нам оквир за поруку као „Поменута мапа је доступна“, ако не, приказаће се ВБА порука као „Поменута мапа није доступна“.

Шифра:

 Под ФСО_Екампле2 () Затамни МиФирстФСО као ФилеСистемОбјецт Постави МиФирстФСО = Нови ФилеСистемОбјецт Ако МиФирстФСО.ФолдерЕкистс („Д: \ Екцел Филес \ ВБА \ ВБА Филес“) Тада МсгБок „Поменута фасцикла је доступна“ Елсе МсгБок је поменута фасцикла није наведена Енд Иф Енд Суб 

Покрените овај код кроз Екцел пречицу Ф5 или ручно, а затим погледајте резултат.

Пример # 3 - Проверите да ли датотека постоји или не

Испод ће се проверити да ли је поменута датотека доступна или не.

Шифра:

 Суб ФСО_Екампле3 () Затамни МиФирстФСО као ФилеСистемОбјецт Сет МиФирстФСО = Нев ФилеСистемОбјецт Иф МиФирстФСО.ФилеЕкистс ("Д: \ Екцел Филес \ ВБА \ ВБА Филес \ Тестинг Филе.клсм") Затим МсгБок "Поменута датотека је доступна" Елсе МсгБок Датотека није доступна "Енд Иф Енд Суб 

Покрените овај код ручно или помоћу тастера Ф5, а затим погледајте резултат.