Excel VBA FreeFile

Jak často jste uživatelem aplikace Excel, otevřete soubor a pracujete na něm? Velmi často, že? Opět je možné automatizovat úkoly při otevírání souboru v Excelu pomocí výkonného nástroje VBA, který vám umožní psát makra a nakonec automatizuje všechny úkoly počínaje otevřením souboru z daného umístění, abyste je mohli používat, ukládat a zavírat na stejném místě cesta. Zatímco mluvíme o automatizaci procesu otevírání a zavírání souborů pomocí VBA, je velmi důležité indexovat soubor, aby systém mohl identifikovat, který soubor použít v okamžiku provedení. V rámci VBA máme k dispozici funkci FreeFile, která slouží tomuto účelu.

Co je funkce VBA FreeFile?

VBA FreeFile je funkce, která je roztříděna do funkce VBA, která umožňuje systému vyhradit číslo pro další soubor, který má být otevřen pod výstupním výstupem VBA, pro hladký zážitek z kódování a snížení zbytečných chyb v kódu. Když otevřete soubor pomocí VBA File IO (Input / Output), je naprosto povinné přiřadit tomuto souboru jedinečné číslo, protože můžete mít více souborů na místě, které se chystáte číst, zapisovat a otevírat pomocí svého kód. Jak systém ví, který soubor ze všech, které chcete otevřít? Funkce VBA FreeFile identifikuje jedinečné číslo, které souboru přiřadíme, a zpřístupňuje jej pro otevírání, čtení nebo zápis ve VBA.

Syntaxe funkce FreeFile je následující:

Tato funkce bere pouze jeden argument RangeNumber, který má standardní hodnoty jako nula (0) a jedna (1). Pokud zadáte nulu, bude každému souboru, který otevřete, postupně přiřazeno číslo souboru v rozsahu čísel 1 až 255. Pokud jej zadáte, bude každému souboru, který otevřete, přiřazeno číslo souboru v rozsahu 256 až 511 postupně. Pokud není zadáno žádné číslo RangeNumber, bude ve výchozím nastavení považována nula.

Jak používat funkci FreeFile v aplikaci Excel VBA?

Níže jsou uvedeny různé příklady použití funkce FreeFile v aplikaci Excel VBA.

Tuto šablonu Excel VBA FreeFile si můžete stáhnout zde - VBA FreeFile Excel Template

VBA FreeFile - Příklad č. 1

Při použití funkce FreeFile v aplikaci Excel VBA postupujte podle níže uvedených kroků.

Krok 1: Otevřete nový editor jazyka Visual Basic (VBE) kliknutím na tlačítko Visual Basic na kartě Developer, která je přítomna v souboru aplikace Excel, nebo současným stisknutím klávesy Alt + F11 .

Krok 2: Vložte nový modul do VBE. Klikněte na tlačítko Vložit . Vyberte modul ze seznamu možností dostupných v Vložit.

Krok 3: Definujte nový dílčí postup, který pojme vaše makro.

Kód:

 Sub Příklad_1 () Konec Sub 

Krok 4: Definujte dvě nové proměnné, file_1 a file_2 jako celé číslo. Tyto dvě proměnné budou obsahovat čísla, která přiřazujeme každému souboru, který jsme otevřeli v makru.

Kód:

 Sub Example_1 () Dim file_1 As Integer Dim file_2 As Integer End Sub 

Krok 5: Pomocí operátoru přiřazení přiřaďte celočíselnou hodnotu 1 proměnné file_1 pomocí VBA FreeFile.

Kód:

 Sub Example_1 () Dim file_1 As Integer Dim file_2 As Integer file_1 = FreeFile End Sub 

Krok 6: Nyní použijte příkaz Otevřít, který lze použít k otevření souboru ve VBA.

Kód:

 Sub Example_1 () Dim file_1 As Integer Dim file_2 As Integer file_1 = FreeFile Otevřete "D: \ Excel Content Writing \ TextFile_1.txt" pro výstup As file_1 End Sub 

Zde jsme určili cestu, na které je soubor umístěn. Příkaz For poskytuje možnosti, jako například, jak chcete soubor otevřít (např. Jako výstup) a příkaz As určuje číslo souboru, které jsme určili pomocí příkazu FreeFile.

Krok 7: Podle kroků 5 a 6 přidělte druhému souboru nové číslo pomocí proměnné file_2 a otevřete jej.

Kód:

 Sub Example_1 () Dim file_1 As Integer Dim file_2 As Integer file_1 = FreeFile Open "D: \ Excel Content Writing \ TextFile_1.txt" For Output As file_1 file_2 = FreeFile Open "D: \ Excel Content Writing \ TextFile_2.txt" For Output Jako file_2 End Sub 

Krok 8: Nyní bychom rádi viděli čísla, která jsou skutečně přiřazena oběma textovým souborům. Každý řádek můžete spustit jeden po druhém pomocí klávesy F8. Výstup však nebude viditelný. Ani v souboru Excel, ani v okně Immediate. Přidejte prosím následující příkaz MsgBox, který zobrazí okno se zprávami s čísly pro každý soubor.

Kód:

 Sub Example_1 () Dim file_1 As Integer Dim file_2 As Integer file_1 = FreeFile Open "D: \ Excel Content Writing \ TextFile_1.txt" For Output As file_1 file_2 = FreeFile Open "D: \ Excel Content Writing \ TextFile_2.txt" For Output Jako file_2 MsgBox "Hodnota pro file_1 je:" & file_1 & Chr (13) & "Hodnota pro file_2 je:" & file_2 End Sub 

V tomto řádku kódu bude první řádek zprávy obsahovat text „value for file_1 is:“ a číselná hodnota přiřazená pomocí funkce FreeFile. Chr (13) umožňuje zobrazit další řádek. Na dalším řádku okna se zprávou bude uvedeno „Hodnota pro soubor_2 je:“ a číslo přiřazené druhému souboru.

Krok 9: Spusťte tento kód stisknutím tlačítka Spustit nebo stisknutím klávesy F5.

Takto vám funkce FreeFile umožňuje přiřadit číslo souboru, který chcete otevřít, přečíst, zavřít pomocí VBA.

VBA FreeFile - Příklad č. 2

Pokud zavřeme soubor, který jsme otevřeli pokaždé, bude mít nový otevřený soubor vždy sériové číslo 1 při každém otevření. Postupujte podle níže uvedených kroků.

Krok 1: Definujte nový dílčí postup, který pojme vaše makro.

Kód:

 Sub Příklad_2 () Konec Sub 

Krok 2: Definujte dvě proměnné file_1 a file_2 jako celé číslo v nově definované dílčí proceduře.

Kód:

 Sub Example_2 () Dim file_1 As Integer Dim file_2 As Integer End Sub 

Krok 3: Nyní pomocí FreeFile přiřaďte danému souboru číslo a příkazem Open otevřete tento soubor na místě, kde je máme.

Kód:

 Sub Example_2 () Dim file_1 As Integer Dim file_2 As Integer file_1 = FreeFile Otevřete "D: \ Excel Excel Writing \ TextFile_1.txt" pro výstup As file_1 End Sub 

Krok 4: Pomocí příkazu MsgBox přidejte okno se zprávou o počtu prvních souborů.

Kód:

 Sub Example_2 () Dim file_1 As Integer Dim file_2 As Integer file_1 = FreeFile Open "D: \ Excel Content Writing \ TextFile_1.txt" Pro Output As file_1 MsgBox "Hodnota pro file_1 je:" & file_1 End Sub 

Krok 5: Pomocí příkazu Zavřít zavřete první soubor, který jste otevřeli pomocí VBA.

Kód:

 Sub Example_2 () Dim file_1 As Integer Dim file_2 As Integer file_1 = FreeFile Open "D: \ Excel Writing Content \ TextFile_1.txt" Pro Output As file_1 MsgBox "Hodnota pro file_1 je:" & file_1 Zavřít file_1 End Sub 

Krok 6: Nyní postupujte stejným způsobem jako v kroku 5, kroku 6, kroku 7, ale u druhého souboru. Zahrnuje přiřazení hodnoty k proměnné file_2 pomocí funkce FreeFile a její otevření pomocí příkazu Open, pomocí MsgBox k zobrazení čísla souboru pro druhý soubor a nakonec uzavření druhého souboru.

Kód:

 Sub Example_2 () Dim file_1 As Integer Dim file_2 As Integer file_1 = FreeFile Open "D: \ Excel Writing Content \ TextFile_1.txt" Pro Output As file_1 MsgBox "Hodnota pro file_1 je:" & file_1 Zavřít file_1 file_2 = FreeFile Open "D : \ Excel Content Writing \ TextFile_2.txt "Pro výstup jako file_2 MsgBox" Hodnota pro file_2 je: "& file_2 Zavřít file_2 End Sub 

Krok 7: Spusťte tento kód stisknutím tlačítka Spustit nebo F5.

První okno se zprávou představuje hodnotu file_1, která se zdá být 1. Druhá pole se zprávou představuje hodnotu file_2, která se také jeví jako 1. Tato změna je tam, protože jsme použili příkaz close k uzavření souborů jeden po druhém. Díky tomu bude při zahajování nového souboru pokaždé, když starý soubor a jeho číslo zmizí ze systémové paměti, bude další soubor považován za nový soubor s čísly začínajícími od 1.

Co si pamatovat

  • FreeFile vrací jedinečné celé číslo do každého souboru, který otevíráme, čteme a uzavíráme prostřednictvím VBA File IO.
  • FreeFile má dvě hodnoty pro argument RangeNumber (což je volitelné). Zero obvykle přiřadí číslo mezi rozsahem 1 až 255 a jedno přiřadí čísla od 256 do 511.

Doporučené články

Toto je průvodce VBA FreeFile. Zde diskutujeme o tom, jak vám funkce FreeFile umožňuje přiřadit číslo souboru, který chcete otevřít, přečíst, zavřít pomocí Excel VBA, spolu s praktickými příklady a šablonou Excel ke stažení. Můžete si také prohlédnout naše další doporučené články -

  1. VBA Kontrola souboru existuje | Šablona Excel
  2. Index VBA mimo rozsah (příklady)
  3. Funkce GetObject v Excelu VBA
  4. Jak používat formát čísla ve VBA?
  5. VBA Environ

Kategorie: