Dir関数使用例 4選

目次

VBA関数について

VBAで使う関数って何?よくわかんない!

関数は実務でもたくさん使うんだ!一つずつ覚えていこうね!

関数は決まった計算や処理を行う命令になります。実務を行う上でも関数はよく使います。

マクロ記録機能では関数は記録されないため、一つずつ覚えていきましょう。

Dir関数使用例 1

下記サンプルは、指定したパスとファイル情報からファイルが存在するかどうかを確認することができます。

Sub Dir_Function1()

    'ファイルが存在するか? 確認
    
    Const OPENFILE As String = "C:\まるきち出欠表.xlsx"
    
    If Dir(OPENFILE) = "" Then
        
        MsgBox "ファイルが存在しません!"
        
    Else
    
        MsgBox "ファイルが存在します!"
    
    End If
    
End Sub

ファイルが存在する場合に実行した結果になります。

Dir関数使用例 2

下記サンプルは、指定したフルパスの情報からファイル名のみを抽出する方法になります。

Sub Dir_Function2()

    'フルパスからファイル名を抽出
    
    Const OPENFILE As String = "C:\まるきち出欠表.xlsx"

    Dim FileName As String
    
    FileName = Dir(OPENFILE)
    
    MsgBox OPENFILE & "のファイル名は" & vbCrLf & FileName

End Sub

サンプルコードを動かした結果になります。

Dir関数使用例 3

下記サンプルは、指定したフルパスの情報からパスのみを抽出する方法になります。

Sub Dir_Function3()

    'フルパスからパスのみを抽出

    Const OPENFILE As String = "C:\まるきち出欠表.xlsx"

    Dim FileName As String
    
    FileName = Dir(OPENFILE)
    
    MsgBox OPENFILE & "のパス名は" & vbCrLf & Replace(OPENFILE, FileName, "")

End Sub

サンプルコードを動かした結果になります。

Dir関数使用例 4

下記サンプルは指定したフォルダ内の全Excelファイルを取得することができます。

サンプル9行目にあるように、Dir関数は「*.xlsx」と”*”を使用することでファイル名や拡張子にワイルドカードを指定することができます。

このサンプルではDir(“C:*.xlsx”)とすることで、全てのExcelファイルを取得しています。

サンプルを実行する前に空の”Sheet1″シートを準備して下さい。

Sub Dir_Function4()

    'フォルダ内のファイルをすべて取得する
    
    Dim FileName As String, cnt As Long
    
    ThisWorkbook.Worksheets("Sheet1").Activate
    
    FileName = Dir("C:\*.xlsx")
    
    Do While FileName <> ""
    
        cnt = cnt + 1
        
        Cells(cnt, 1) = FileName
        
        FileName = Dir()
        
    Loop

End Sub

サンプルコードを動かした結果下記のように、”Sheet1″シートにCドライブ直下にあるExcelファイルが1行ごとに抽出されています。

まとめ

本日はDir関数の使い方4選を紹介しました。

この記事が皆様のお役に立つことができればとても嬉しいです。

活用できるスキルが学べる1冊です!激しくオススメ!

bookfan 2号店 楽天市場店
¥1,980 (2024/09/23 18:47時点 | 楽天市場調べ)

\ Excel VBA 技術書も豊富 /

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!

この記事を書いた人

ものおと申します。

10年以上の大手メーカー勤務経験のあるエンジニアです。

これまでのものづくりの経験から小学生にも伝わるExcel VBAお役立ち記事を発信していきたいと思います。

よろしくお願いします。

コメント

コメントする

CAPTCHA


目次