Funkcja Excel VBA DIR

Dir jest jedną z funkcji dostępnych w VBA. Funkcja Dir służy do odsyłania katalogów w kodzie VBA.
Funkcja, która zwraca nazwę pliku lub katalogu pasującą do podanego atrybutu lub ciągu, w przeciwnym razie zwraca pierwszy plik lub folder. Krótko mówiąc, jeśli mamy folder ABC, a wewnątrz ABC znajduje się plik XYZ, możemy uzyskać dostęp do pliku XYZ za pomocą funkcji DIR w VBA.

Wzór na funkcję DIR w Excelu VBA

Funkcja DIR ma następującą składnię w Excel VBA:

Składa się z dwóch części Nazwa ścieżki i Atrybuty.

  • Nazwa ścieżki : po nazwie każdy może zrozumieć, że jest to ścieżka do pliku, w którym plik faktycznie istnieje. Jeśli nie wprowadzimy żadnej ścieżki w pathname, zwróci pusty ciąg.
  • Atrybut: Jest to opcjonalny argument, nie używamy go dużo. Możemy użyć tego, gdy chcemy otworzyć plik z poniższymi atrybutami, a następnie VBA szuka tych plików.
vbArchiwumOkreśla archiwa lub pliki kopii zapasowych.
vbNormalneNormalny (domyślny) lub brak atrybutów.
vbReadOnlyPliki tylko do odczytu
vbSystemPliki systemowe
vbVolumeetykieta objętości; Jeśli użyjesz z tym atrybutem innego atrybutu, etykieta woluminu zostanie zignorowana.
vbDirectoryKatalogi lub foldery.
vbHiddenukryte pliki
vbAliasNazwa pliku to alias

Jak korzystać z funkcji DIR w programie Excel VBA?

Poniżej znajdują się różne przykłady użycia funkcji DIR w programie Excel przy użyciu kodu VBA.

Możesz pobrać ten szablon Excel VBA DIR tutaj - Szablon Excel VBA DIR

Funkcja VBA DIR - przykład nr 1

W tym przykładzie zobaczymy, jak uzyskać dostęp do nazwy pliku za pomocą funkcji DIR w VBA.

Krok 1: Przejdź do karty Deweloperzy i kliknij Visual Basic

Krok 2: Otwórz moduł z opcji menu Wstaw, jak pokazano poniżej.

Krok 3: Aby uruchomić dowolne makro, najpierw musimy nadać mu nazwę za pomocą słowa kluczowego „sub”, jak poniżej.

Kod:

 Sub myexample1 () End Sub 

Pamiętaj, że piszemy nasz kod w „Module1”, gdy wprowadzamy „sub myexample ()”, automatycznie pojawi się „End sub”.

Krok 4: Zdefiniuj ciąg za pomocą słowa kluczowego „ Dim ”, które odnosi się do wymiaru. Na poniższym zrzucie ekranu „mystring” to nazwa ciągu.

Kod:

 Sub myexample1 () Dim mystring As String End Sub 

Pamiętaj, że za każdym razem, gdy definiujesz nazwy typów danych lub nazwy programów, pomiędzy dwoma słowami nie powinno być spacji. „Mystring” bez spacji między „my” a „string”.

Plik jest dostępny w przykładowym folderze, który jest dostępny na pulpicie, a jego nazwa to „KT tracker mine”.

C: \ Users \ cba_13 \ Desktop \ Sample \

Krok 5: Teraz musimy zapisać nazwę pliku w „tajemnicy” za pomocą funkcji Dir.

Kod:

 Sub myexample1 () Dim mystring As String mystring = Dir („C: \ Users \ cba_13 \ Desktop \ Sample \”) End Sub 

Na powyższym zrzucie ekranu w funkcji Dir podałem ścieżkę pliku bez nazwy pliku. Ponieważ jest tylko jeden plik, zwróci nazwę pliku.

Krok 6: Teraz z powyższym krokiem nazwa pliku jest przechowywana w ciągu „mystring”. Aby wyświetlić nazwę pliku, musimy wyświetlić go w oknie komunikatu. Utwórz okno wiadomości.

Kod:

 Pod myexample1 () Dim mystring As String mystring = Dir („C: \ Users \ cba_13 \ Desktop \ Sample \”) MsgBox (mystring) End Sub 

Podaliśmy instrukcję, aby wyświetlać dane w „tajemnicy” poprzez okno komunikatu, ponieważ „tajemnica” ma nazwę pliku, wyświetli nazwę pliku przez okno komunikatu.

Krok 7: Teraz uruchom kod, klikając przycisk Odtwórz lub naciskając klawisz F5.

Funkcja VBA DIR - Przykład 2

W tym przykładzie zobaczymy, jak otworzyć plik za pomocą funkcji DIR w programie Excel VBA.

Krok 1: Otwórz ekran kodu VBA i zacznij od podania nazwy programu jako „example2” lub dowolnej nazwy, którą chcesz.

Kod:

 Sub example2 () End Sub 

Krok 2: Zdefiniuj dwa ciągi o nazwach „Foldername” i „Filename”.

Kod:

 Podprzykład2 () Dim Nazwa pliku jako ciąg Dim Nazwa pliku jako ciąg End Sub 

Krok 3: Teraz przypisz ścieżkę folderu do nazwy folderu.

Kod:

 Podprzykład2 () Dim Nazwa pliku jako ciąg Dim Nazwa pliku jako ciąg Nazwa folderu = "C: \ Users \ cba_13 \ Desktop \ Sample \" End Sub 

Krok 4: Przypisz plik do „filename” za pomocą funkcji Dir. Tutaj użyliśmy zmiennej „Foldername”, ponieważ ma ona ścieżkę do folderu. Za pomocą ampersand dodaliśmy nazwę pliku do ścieżki.

Kod:

 Podprzykład2 () Dim Nazwa pliku jako ciąg Dim Nazwa pliku jako ciąg Nazwa folderu = "C: \ Users \ cba_13 \ Desktop \ Sample \" Nazwa pliku = Dir (nazwa folderu i "KT Tracker mine.xlsx") End Sub 

Teraz funkcja Dir zwraca nazwę pliku i będzie przechowywana w zmiennej „filename”.

Krok 5: W poprzednim przykładzie użyliśmy okna komunikatu, aby zobaczyć wyniki. Ale w tym chcemy otworzyć plik, więc użyjemy polecenia „workbooks.open”.

Kod:

 Sub example2 () Dim Foldername As String Dim Nazwa pliku As String Foldername = "C: \ Users \ cba_13 \ Desktop \ Sample \" Filename = Dir (Foldername & "KT Tracker mine.xlsx") Workbooks.Open Foldername & Filename End Sub Sub 

Krok 6: Uruchom powyższy kod, otworzy plik dostępny w folderze „C: \ Users \ cba_13 \ Desktop \ Sample \” o nazwie pliku „KT Tracker mine”.

Funkcja VBA DIR - przykład nr 3

Teraz zobaczymy, jak program wie, czy folder jest dostępny, czy nie. Mam folder „Dane”, jak pokazano poniżej.

Za pomocą funkcji Dir musimy sprawdzić, czy folder „Data” jest dostępny w ścieżce C: \ Users \ cba_13 \ Desktop \ Sample \.

Krok 1: Utwórz nazwę programu i zdefiniuj dwa ciągi o nazwach FD i FD1.

Kod:

 Sub example3 () Dim Fd As String Dim Fd1 As String End Sub 

Krok 2: Przypisz ścieżkę folderu do zmiennej „Fd”.

Kod:

 Sub example3 () Dim Fd As String Dim Fd1 As String Fd = "C: \ Users \ cba_13 \ Desktop \ Sample \ Data" End Sub 

Krok 3: Teraz użyj funkcji Dir, aby zwrócić nazwę folderu, jak pokazano poniżej.

Kod:

 Sub example3 () Dim Fd As String Dim Fd1 As String Fd = "C: \ Users \ cba_13 \ Desktop \ Sample \ Data" Fd1 = Dir (Fd, vbDirectory) End Sub 

Wynik funkcji Dir powinien być nazwą folderu i będzie przechowywany w zmiennej ciąg Fd1. Jeśli folder „Data” nie jest dostępny w odpowiednim folderze, nie zwróci żadnego ciągu.

Krok 4: Teraz musimy sprawdzić, czy Fd1 ma folder „Data”, czy nie. Użyj warunku IF, aby sprawdzić, czy Fd1 ma ciąg „Data”, czy nie. Jeśli jest dostępny, wydrukuj wyciąg „Exists”.

Kod:

 Sub example3 () Dim Fd As String Dim Fd1 As String Fd = "C: \ Users \ cba_13 \ Desktop \ Sample \ Data" Fd1 = Dir (Fd, vbDirectory) Jeśli Fd1 = „Data”, to MsgBox („Exits”) End Pod 

Krok 5: W przypadku, gdy Fd1 nie zgadza się z folderem „Data” wydrukuje komunikat „Nie istnieje” w innym stanie.

Kod:

 Sub example3 () Dim Fd As String Dim Fd1 As String Fd = "C: \ Users \ cba_13 \ Desktop \ Sample \ Data" Fd1 = Dir (Fd, vbDirectory) Jeśli Fd1 = „Data”, to MsgBox („Exits”) MsgBox („Not Exits”) End Sub 

Krok 6: Zakończ pętlę „If”, jak pokazano na poniższym zrzucie ekranu.

Kod:

 Sub example3 () Dim Fd As String Dim Fd1 As String Fd = "C: \ Users \ cba_13 \ Desktop \ Sample \ Data" Fd1 = Dir (Fd, vbDirectory) Jeśli Fd1 = „Data”, to MsgBox („Exits”) MsgBox („Not Exits”) End If End Sub 

Krok 7: Uruchom kod, naciskając klawisz F5 lub klikając przycisk Odtwórz, aby sprawdzić, czy folder jest dostępny, czy nie. Jeśli folder „Dane” jest dostępny w tym folderze, wówczas zwróci okno komunikatu z komunikatem „Istnieje”, jak poniżej.

Krok 8: Wystarczy zmienić nazwę folderu na Data1.

 Podprzykład3 () Dim Fd As String Dim Fd1 As String Fd = "C: \ Users \ cba_13 \ Desktop \ Sample \ Data1" Fd1 = Dir (Fd, vbDirectory) Jeśli Fd1 = „Dane”, to MsgBox („Wyjście”) MsgBox („Not Exits”) End If End Sub 

Krok 9: Uruchom kod ponownie. Teraz wynikiem jest „Nie istnieje”, jak pokazano poniżej.

Rzeczy do zapamiętania

  • Argumenty w funkcji Dir są opcjonalne.
  • Jeśli chcemy ukrytych plików, folderów lub innego rodzaju katalogów, w drugim argumencie podaj swoje wymagania.
  • Użyj „\” na końcu nazwy folderu, podając funkcję Dir, aby przejść do folderu.
  • Jeśli chcemy zadzwonić lub otworzyć wiele plików, możemy użyć znaku wieloznacznego „*” lub „?”.

Polecane artykuły

Jest to przewodnik po funkcji VBA DIR. Tutaj omawiamy, jak korzystać z funkcji DIR w Excel VBA wraz z kilkoma praktycznymi przykładami i szablonem Excel do pobrania. Możesz także przejrzeć nasze inne sugerowane artykuły -

  1. Skoroszyt VBA
  2. Funkcja POŚREDNIE w programie Excel
  3. Liczba VBA
  4. Funkcja Excel XOR

Kategoria: