Option Explicit
Function FolderExistence(strPath As String) As Boolean
'********************************************
'フォルダが存在しているかどうかを確認する
'********************************************
Dim strErr As String
On Error GoTo ErrEND:
If Dir(strPath, vbDirectory) = "" Then
FolderExistence = False
Else
FolderExistence = True
End If
Exit Function
ErrEND:
strErr = Err.Description
'MsgBox strErr
Debug.Print strErr
FolderExistence = False
End Function
Private Sub test()
Dim a As String, b(20) As String, i As Byte
a = ThisWorkbook.Path
b(1) = "Test" '予め作成済み
b(2) = "TestZ" '不存在フォルダ
b(3) = "Test\" '使用不可文字
b(4) = "Test/" '使用不可文字
b(5) = "Test:" '使用不可文字
b(6) = "Test*" '使用不可文字
b(7) = "Test?" '使用不可文字
b(8) = "Test""" '使用不可文字
b(9) = "Test<" '使用不可文字
b(10) = "Test>" '使用不可文字
b(11) = "Test|" '使用不可文字
b(12) = "\Test" '使用不可文字
b(13) = "/Test" '使用不可文字
b(14) = ":Test" '使用不可文字
b(15) = "*Test" '使用不可文字
b(16) = "?Test" '使用不可文字
b(17) = """Test" '使用不可文字
b(18) = "<Test" '使用不可文字
b(19) = ">Test" '使用不可文字
b(20) = "|Test" '使用不可文字
For i = 1 To 20
If FolderExistence(a & "\" & b(i)) = True Then
Debug.Print i & ":存在"
Else
Debug.Print i & ":不存在"
End If
Next i
'1: 存在
'2: 不存在
'3: 存在
'4: 存在
'5: 不存在'ファイル名または番号が不正です。
'6: 存在
'7: 存在
'8: 存在
'9: 存在
'10: 存在
'11: 不存在'ファイル名または番号が不正です。
'12: 存在
'13: 存在
'14: 不存在'ファイル名または番号が不正です。
'15: 存在
'16: 不存在
'17: 不存在
'18: 存在
'19: 不存在
'20: 不存在'ファイル名または番号が不正です。
End Sub
|
フォルダ使用不可文字を指定して確認すると「存在」とみなす文字もある
|
Dir 関数
指定したパターンやファイル属性と一致するファイルまたはフォルダの名前を表す文字列型 (String) の値を返します。ドライブのボリューム ラベルも取得できます。
-
構文
- Dir[(pathname[, attributes])]
- Dir 関数の構文は、次の指定項目から構成されます。
-
指定項目 内容
-
pathname
省略可能です。ファイル名を表す文字列式を指定します。フォルダ名およびドライブ名も含めて指定できます。引数 pathname に指定した内容が見つからないときは、長さ
0 の文字列 (" ") を返します。
-
attributes
省略可能です。取得するファイルが持つ属性の値の合計を表す数式または定数を指定します。省略すると、標準ファイルの属性になります。
-
設定値
- 引数 attributes の設定値は次のとおりです。
|
定数 |
値 |
内容 |
vbNormal |
0 |
標準ファイル |
vbReadOnly |
1 |
読み取り専用ファイル |
vbHidden |
2 |
隠しファイル |
vbSystem |
4 |
システム ファイル。Macintosh では使用できません。 |
vbVolume |
8 |
ボリューム ラベル。この値を指定すると、すべての属性は無効になります。Macintosh では使用できません。 |
vbDirectory |
16 |
フォルダ |
vbAlias |
64 |
エイリアス ファイル。Macintosh でのみ使用できます。 |
|