Toto makro Excel vám umožňuje předat cestu k souboru a vyhodnotit, zda soubor existuje. Můžete mít například proces, který manipuluje se souborem někde ve vašem PC. Možná budete muset například otevřít existující sešit, abyste do něj denně přidávali data. V tomto případě možná budete muset otestovat, zda soubor, s nímž potřebujete manipulovat, existuje.
Jak makro funguje
První věc, kterou si na tomto makru všimnete, je, že se jedná o funkci, nikoli proceduru Sub. Vytvoření tohoto makra jako funkce vám umožní předat mu jakoukoli cestu k souboru.
V tomto makru použijete funkci Dir, která vrátí řetězec představující název souboru, který odpovídá tomu, co mu předáte. Tuto funkci lze použít mnoha způsoby, ale zde ji můžete použít ke kontrole, zda existuje cesta k souboru, kterou jí předáte:
Funkce FileExists(FPath As String) Jako Boolean
'Krok 1: Deklarujte své proměnné
Ztlumit FName jako řetězec
'Krok 2: Použijte funkci Dir k získání názvu souboru
FName = Dir(FPath)
'Krok 3: Pokud soubor existuje, vraťte True; jinak Falešný
If FName <> " Then FileExists = True _
Jinak: FileExists = False
End Function
Krok 1 deklaruje proměnnou String, která obsahuje název souboru, který se vrací z funkce Dir. FName je název proměnné String.
V kroku 2 se pokusíte nastavit proměnnou FName. To provedete předáním proměnné FPath funkci Dir. Tato proměnná FPath se předává prostřednictvím deklarací funkce (viz první řádek kódu). Tato struktura zabraňuje tomu, abyste museli pevně zakódovat cestu k souboru a místo toho ji předat jako proměnnou.
Pokud proměnnou FName nelze nastavit, cesta, kterou jste předali, neexistuje. Proměnná FName je tedy prázdná. Krok 3 pouze převede tento výsledek na pravdivý nebo nepravdivý výraz.
Tuto funkci lze opět použít k vyhodnocení jakékoli cesty k souboru, kterou jí předáte. To je krása psaní makra jako funkce.
Následující makro ukazuje, jak tuto funkci použít:
Dílčí makro1()
If FileExists("C:TempMyNewBook.xlsx") = True Then
MsgBox "Soubor existuje."
Jiný
MsgBox "Soubor neexistuje."
End If
End Sub
Jak používat makro
Chcete-li implementovat toto makro, můžete zkopírovat a vložit obě části kódu do standardního modulu:
Aktivujte Editor jazyka Visual Basic stisknutím Alt+F11.
Klepněte pravým tlačítkem myši na název projektu/sešitu v okně projektu.
Vyberte Vložit → Modul.
Zadejte nebo vložte kód do nově vytvořeného modulu.