本ページには広告が含まれています。

ExcelVBA CurDir 関数 ドライブの現在のパスを返す

ExcelVBA CurDir 関数 ドライブの現在のパスを返す

Excel VBAの「CurDir 関数」について解説します。

スポンサーリンク

CurDir 関数とは

Excel VBA の CurDir 関数は、指定したドライブの現在のパスを返します。ドライブを指定しない場合は、カレントドライブのフォルダ(現在作業中のドライブのフォルダ)のパスが返ります。

CurDir 関数の構文や引数の設定と実際の使い方について具体的に解説していきたいと思います。

CurDir 関数(Visual Basic for Applications リファレンス)

構文(引数と戻り値)

Excel VBAの関数を使いこなすには、関数の構文を正しく理解しておくことが重要です。

構文

CurDir[(drive)]

引数

引数 説明
drive【省略可能】ドライブ文字を指定します
※ 省略時は、カレント(現在の)ドライブです

戻り値

戻り値説明
パスを表す文字列
(String)
現在のフォルダパスを表す文字列が返ります

drive が指定されていないか、長さが 0 の文字列 (“”) の場合は、カレントドライブのパスを返します。
※ 「現在のフォルダ」とは、カレントドライブなら作業中のフォルダです。
※ カレントドライブ以外の「現在のフォルダ」は、最後にそのドライブがカレントドライブになっていたときに設定されたフォルダです。ドライブごとに独立して管理記憶されています。

解説(使用例)

CurDir 関数の使い方をサンプルで確認していきましょう。

CurDir 関数サンプル (基本的な使用例)

「現在のフォルダ」のパスを表示する基本的な例を紹介します。

カレントドライブのフォルダパス取得例

drive を指定しないか、長さが 0 の文字列 (“”) の場合はカレントドライブのパスを返す例です。

'■CurDir関数使用例1(カレントドライブのパス取得例)
Sub CurDir_Sample01()
    Dim curPath As String
    
    ' 現在のフォルダを取得(引数を指定しない)
    curPath = CurDir()  ' () は無くてもOK
    
    ' 結果を表示
    MsgBox "現在のフォルダパスは" & vbCrLf & curPath
End Sub

実行結果の MsgBox 画像です。

CurDir_Sample01 実行で表示されるMsgBox画像

drive に特定のドライブ文字を指定した場合は、指定したドライブの現在のフォルダパスを取得して返します。

指定したドライブのフォルダパス取得例

InputBox を使ってドライブ文字を指定できるようにした例です。入力内容によってはエラーが発生する可能性があるので、エラーハンドリングを設定しています。

'■CurDir関数使用例2(指定したドライブのパス取得例)
Sub CurDir_Sample02()
    Dim curDrive As String
    Dim curPath As String
    
    ' ドライブ名をインプットボックスで指定する
    curDrive = InputBox("ドライブ名を入力してください" & _
                vbCrLf & "(未指定の場合はカレントドライブです)")
                
    On Error GoTo ErrorHandler
                
    ' 指定ドライブの現在のフォルダパスを取得
    curPath = CurDir(curDrive)
    
    ' 結果を表示
    MsgBox "指定ドライブの現在のフォルダパスは" & vbCrLf & curPath
    Exit Sub
ErrorHandler:
    MsgBox "エラー番号:" & Err.Number & " " & Err.Description & _
        vbCrLf & curDrive & "ドライブは存在しないか、アクセスできません。", _
        vbExclamation
End Sub

実行時に表示される InputBox がこちらです。「D」を入力しています。

CurDir_Sample01 実行で表示されるInputBox画像

取得後に表示された MsgBox 画像です。

CurDir_Sample02
 実行で表示されるMsgBox画像

入力されたドライブ文字が存在しなかった場合に表示された画像がこちらです。

CurDir_Sample02
 エラーハンドラーで表示されるMsgBox画像

エラーハンドリングできていることが確認できました。

おわりに

Excel VBA の CruDir 関数は、現在のフォルダ(作業フォルダ)のパスを取得するための関数です。

VBAでファイル操作を行う際に非常に便利な関数です。例えば、一時的に作業フォルダを変更してファイル処理を行うような場合などに利用します。CruDir 関数で元のフォルダを変数に取得しておけば、処理完了後に元のフォルダに簡単に戻すことができます。

以上、この解説が少しでもみなさまのお役に立てたなら幸いです(^^;

VBAの関数一覧はこちらからご参照ください。

スポンサーリンク
スポンサーリンク

VBAサンプルファイルダウンロードページのご案内

このページで使用したサンプルファイルの登録はありません(^^;
ページ内のコードをコピーしてご利用ください。

ダウンロードページへのリンクは下のカードクリックでジャンプできます。
よろしければご利用ください!