VBADIR関数| Excel VBA DIR関数の使い方は?

Excel VBADIR関数

VBA DIR関数はディレクトリ関数とも呼ばれます。これはVBAに組み込まれている関数で、特定のファイルまたはフォルダーのファイル名を指定するために使用されますが、ファイルのパスを指定する必要があります。これにより、出力が返されます。関数はファイルの名前を返すため文字列です。この関数には、パス名と属性の2つの引数があります。

DIR関数は、指定されたフォルダーパスの最初のファイル名を返します。たとえば、Dドライブに2019という名前のフォルダがあり、そのフォルダに「2019 Sales」という名前のファイルが優れている場合、DIR関数を使用してこのファイルにアクセスできます。

「VBADIR」関数は、パスフォルダを使用してファイルの名前を取得するのに非常に役立ちます。

構文

この関数には、2つのオプションの引数があります。

  • [パス名]:名前のとおり、ファイルにアクセスするためのパスは何ですか。これは、ファイルの名前、フォルダーの名前、またはディレクトリの場合もあります。パスが割り当てられていない場合は、空の文字列値、つまり「」を返します。
  • [属性]:これもオプションの引数であり、コーディングではあまり使用しない場合があります。[パス名]でファイルの属性を指定すると、DIR関数はそれらのファイルのみを検索します。

例:隠しファイルのみにアクセスしたい場合、読み取り専用ファイルのみにアクセスしたい場合など…この引数で指定できます。以下は、使用できる属性です。

VBADIR関数の使用例

このVBADir Excelテンプレートはここからダウンロードできます– VBA DirExcelテンプレート

例1-DIR関数を使用したファイル名へのアクセス

DIR関数を使用してファイル名にアクセスする簡単な例を説明します。以下の手順に従ってください。

手順1:マクロ名を作成します。

手順2:変数を文字列として定義します。

コード:

 Sub Dir_Example1()Dim MyFile As String End Sub 

ステップ3:この変数には、DIR関数を使用して値を割り当てます。

コード:

 Sub Dir_Example1()Dim MyFile As String MyFile = Dir(End Sub 

ステップ4:ファイルフォルダーのパスをコピーしてコンピューターに貼り付けます。パス名を二重引用符で囲んでください。

コード:

 Sub Dir_Example1()Dim MyFile As String MyFile = Dir( "E:\ VBA Template End Sub 

ステップ5:フォルダーへのパスについて説明しました。次に、ファイル名とその拡張子についても説明する必要があります。これを最初に行う必要があるのは、パスの後に円記号を付ける必要があることです(\)

バックスラッシュを入力した後、完全なファイル名を入力する必要があります

コード:

 Sub Dir_Example1()Dim MyFile As String MyFile = Dir( "E:\ VBA Template \ VBA Dir Excel Template.xlsm")End Sub 

手順6:メッセージボックスに変数の値を表示します。

コード:

 Sub Dir_Example1()Dim MyFile As String MyFile = Dir( "E:\ VBA Template \ VBA Dir Excel Template.xlsm")MsgBox MyFile End Sub 

次に、コードを実行して、メッセージボックスの結果を確認します。

そのため、DIR関数はファイル拡張子が付いたファイル名を返しました。

例2–DIR関数を使用してファイルを開く

Now how do we open the file? This function can return file name but opening that file is a bit different process. Follow the below steps to open the file.

Step 1: Create two variables as String.

Code:

 Sub Dir_Example2() Dim FolderName As String Dim FileName As String End Sub 

Step 2: Now for FolderName variable assign the folder path.

Code:

 Sub Dir_Example2() Dim FolderName As String Dim FileName As String FolderName = "E:\VBA Template\" End Sub 

Step 3: Now for the FileName variable, we need to get the file name by using the DIR function.

Code:

 Sub Dir_Example2() Dim FolderName As String Dim FileName As String FolderName = "E:\VBA Template\" FileName = Dir( End Sub 

Step 4: Now for Path Name we have already assigned a path to the variable FolderPath, so we can directly supply the variable here.

Code:

 Sub Dir_Example2() Dim FolderName As String Dim FileName As String FolderName = "E:\VBA Template\" FileName = Dir(FolderName End Sub 

Step 5: Now we need to supply the file name. By using the ampersand symbol (&) assign the file name.

Code:

 Sub Dir_Example2() Dim FolderName As String Dim FileName As String FolderName = "E:\VBA Template\" FileName = Dir(FolderName & "VBA Dir Excel Template.xlsm") End Sub 

Step 6: Now use the WORKBOOKS.OPEN method.

Code:

 Sub Dir_Example2() Dim FolderName As String Dim FileName As String FolderName = "E:\VBA Template\" FileName = Dir(FolderName & "VBA Dir Excel Template.xlsm") Workbooks.Open End Sub 

Step 7: File Name is a combination of FolderPath & FileName. So combine these two.

Code:

 Sub Dir_Example2() Dim FolderName As String Dim FileName As String FolderName = "E:\VBA Template\" FileName = Dir(FolderName & "VBA Dir Excel Template.xlsm") Workbooks.Open FolderName & FileName End Sub 

Now run this code it will open the mentioned file name.

Example #3 – Open Multiple Workbooks using DIR Function

Actually, we can access all the workbooks in the folder. In order to access each and every file we cannot mention all the file names directly, but we can use the wildcard character to refer the file.

The asterisk (*) is one of those wildcard characters. It identifies any number of characters. For example, if you want to access all the macro files in the folder you can use the asterisk as the wildcard i.e. “*.xlsm*”

Here * will match any file name with the extension of the file is equal to “xlsm”.

Code:

 Sub Dir_Example3() Dim FolderName As String Dim FileName As String FolderName = "E:\VBA Template\" FileName = Dir(FolderName & "*.xlsm*") Do While FileName  "" Workbooks.Open FolderName & FileName FileName = Dir() Loop End Sub 

Now the above code will open all the files in the folder path.

FileName = Dir() the reason why I have used this line because, in order to access the next file in the folder, we have to make the existing file name to nil. The moment we make the existing file name to nil when the loop runs for the second time it will take the next file in the folder.

Example #4 – Get all the File Names in the Folder

Suppose if you want the list of all the file names in the folder we can also do this by using attributes.

Code:

 Sub Dir_Example4() Dim FileName As String FileName = Dir("E:\VBA Template\", vbDirectory) Do While FileName  "" Debug.Print FileName FileName = Dir() Loop End Sub 

Make the immediate window visible by pressing Ctrl + G.

Now run the code we will get all the file names in the immediate window.