テスト28
'ファイルの存在と開かれているかのチェック
Sub File()
Dim F_Path() As Variant
Dim fso As Variant
Dim ExName As String
Set fso = CreateObject("Scripting.FileSystemObject")
ReDim Preserve F_Path(2)
'拡張子を格納
ExName = fso.GetExtensionName(FilePath)
'各パスを格納
With ThisWorkbook.Sheets("Sheet6")
F_Path(0) = .Cells(1, 1).Value
F_Path(1) = .Cells(2, 1).Value
F_Path(2) = .Cells(3, 1).Value
End With
For i = LBound(F_Path) To UBound(F_Path)
ExName = fso.GetExtensionName(F_Path(i))
If ExName <> "" Then
'パスがファイル(拡張子がある場合)の時はファイルチェック
Call File_Check(F_Path(i))
Else
'パスがフォルダ(拡張子がない場合)の時はファイルチェック
Call Folder_Check(F_Path(i))
End If
ExName = ""
Next i
MsgBox "問題ありません", vbCritical
End Sub
Sub File_Check(ByVal strPath As String)
'ファイルチェック
Dim fso As Variant
Dim s As String
Set fso = CreateObject("Scripting.FileSystemObject")
' ファイル名と拡張子(パス上にファイルがなくてもファイル名が取得できる)
s = fso.GetFileName(strPath)
'ファイルの存在チェック
If Dir(strPath) = "" Then
'問題なければ何もしない
MsgBox s & "が存在しません。もう一度確認してください。", vbCritical
End
End If
'-------------------------------------------------------------
'ファイルが開かれているかのチェック(ファイルの場合に処理を実行する)
On Error Resume Next
Open strPath For Append As #1
Close #1
If Err.Number > 0 Then
MsgBox s & "がすでに開かれています。もう一度確認してください。", vbCritical
End
Else
'問題がなければ何もしない
On Error GoTo 0
End If
End Sub
Sub Folder_Check(ByVal strPath As String)
'フォルダチェック
Set fso = CreateObject("Scripting.FileSystemObject")
' ファイル名と拡張子(パス上にファイルがなくてもファイル名が取得できる)
s = fso.GetBaseName(strPath)
If Dir(strPath, vbDirectory) = "" Then
'問題なければ何もしない
MsgBox s & "フォルダが存在しません。もう一度確認してください。", vbCritical
End
End If
End Sub
Author And Source
この問題について(テスト28), 我々は、より多くの情報をここで見つけました https://qiita.com/tqr65rs/items/29a7a7ba0c7d2cb3dbb8著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .