指定したファイル名もしくはフォルダ名が、ファイルか?または、フォルダか?を判定。
【関数化】
' ------------------------------------------------------------
' 説明:指定した名前がフォルダか確認する
' 引数:1:確認するフォルダ名
' 戻値:フォルダの場合:True
' フォルダではない:False
' 補足:フォルダが無い場合はFalseとする
' ------------------------------------------------------------
Function IsFolder(name As String) As Boolean
Dim fso As Object
Set fso = CreateObject("Scripting.FileSystemObject")
' エラーが発生したら、エラー処理を行う
On Error GoTo ErrStep
If fso.FolderExists(name) = True Then ' フォルダの有無を確認
If (fso.GetFolder(name).Attributes And 16) = 16 Then
' フォルダの場合
IsFolder = True
Exit Function
End If
End If
IsFolder = False
Exit Function
ErrStep:
' フォルダにアクセスできない場合(無い場合)はエラーとなる
IsFolder = False
End Function
【関数化】
' ------------------------------------------------------------
' 説明:指定した名前がファイルか確認する
' 引数:1:確認するファイル名
' 戻値:ファイルの場合:True
' ファイルではない:False
' 補足:ファイルが無い場合はFalseとする
' ------------------------------------------------------------
Function IsFile(name As String) As Boolean
Dim fso As Object
Set fso = CreateObject("Scripting.FileSystemObject")
' エラーが発生したら、エラー処理を行う
On Error GoTo ErrStep
If fso.FileExists(name) = True Then ' ファイルの有無を確認
If (fso.GetFile(name).Attributes And 16) = False Then
' ファイルの場合(フォルダ以外)
IsFile = True
Exit Function
End If
End If
IsFile = False
Exit Function
ErrStep:
' ファイルにアクセスできない場合(無い場合)はエラーとなる
IsFile = False
End Function
【関数化】
' ------------------------------------------------------------
' 説明:指定した名前がファイルかフォルダか確認する
' 引数:1:確認するファイル名
' 戻値:ファイルの場合:1
' フォルダの場合:2
' ファイルが無い場合:0
' ------------------------------------------------------------
Function FileOrFolder(name As String) As Integer
Dim fso As Object
Set fso = CreateObject("Scripting.FileSystemObject")
' エラーが発生したら、エラー処理を行う
On Error GoTo ErrStep
If fso.FolderExists(name) = True Then ' フォルダの有無を確認
' フォルダの場合
FileOrFolder = 2
Exit Function
Else
' フォルダが見つからないのでファイルの確認
If fso.FileExists(name) = True Then ' 有無を確認
' ファイルの場合
FileOrFolder = 1
Else
' ファイルも見つからない
FileOrFolder = 0
End If
End If
Exit Function
ErrStep:
' ファイルにアクセスできない場合(無い場合)はエラーとなる
FileOrFolder = 0
End Function
【補足】
FileSystemObject を 使用する際、Microsoft Scripting Runtime を使用しないようにしていますが、上記以外でも使用する場合は、ヒントが出るので Microsoft Scripting Runtime の使用も参考にしてください。


コメント