ブックが開いているかどうか調べる
''' <summary>
''' ブックが開いているかどうか調べる
''' </summary>
''' <param name="strBookName">ブック名</param>
''' <returns>True / False</returns>
''' <see>http://officetanaka.net/excel/vba/tips/tips10.htm</see>
Public Function IsOpenBook(ByVal strBookName As String) As Boolean
Dim Wb As Workbook
For Each Wb In Workbooks
If Wb.Name = strBookName Then
IsOpenBook = True
Exit Function
End If
Next Wb
End Function
シートが存在するかどうか調べる
''' <summary>
''' シートが存在するかどうか調べる
''' </summary>
''' <param name="Wb">ブック</param>
''' <param name="strSheetName">シート名</param>
''' <returns>True / False</returns>
''' <see>http://officetanaka.net/excel/vba/tips/tips10.htm</see>
Public Function SheetExists(ByVal Wb As Workbook, ByVal strSheetName As String) As Boolean
Dim Sh As Worksheet
For Each Sh In Wb.Worksheets
If Sh.Name = strSheetName Then
SheetExists = True
Exit Function
End If
Next Sh
End Function
ファイルが存在するかどうか調べる
''' <summary>
''' ファイルが存在するかどうか調べる
''' </summary>
''' <param name="strFileName">ファイル名</param>
''' <returns>True / False</returns>
''' <see>http://officetanaka.net/excel/vba/file/file06.htm</see>
''' <remarks>Dir関数を使う方法</remarks>
Public Function FileExists(ByVal strFileName As String) As Boolean
If Dir(strFileName) <> "" Then
FileExists = True
End If
End Function
''' <summary>
''' ファイルが存在するかどうか調べる
''' </summary>
''' <param name="strFileName">ファイル名</param>
''' <returns>True / False</returns>
''' <see>http://officetanaka.net/excel/vba/file/file06.htm</see>
''' <remarks>FileExistsメソッドを使う方法</remarks>
Public Function FileExistsFSO(ByVal strFileName As String) As Boolean
With CreateObject("Scripting.FileSystemObject")
If .FileExists(strFileName) Then
FileExistsFSO = True
End If
End With
End Function
フォルダが存在するかどうか調べる
''' <summary>
''' フォルダが存在するかどうか調べる
''' </summary>
''' <param name="strDirName">フォルダ名</param>
''' <returns>True / False</returns>
''' <see>https://www.relief.jp/docs/excel-vba-check-folder-exists.html</see>
''' <remarks>Dir関数を使う方法</remarks>
Public Function FolderExists(ByVal strDirName As String) As Boolean
If Dir(strDirName, vbDirectory) <> "" Then
FolderExists = True
End If
End Function
''' <summary>
''' フォルダが存在するかどうか調べる
''' </summary>
''' <param name="strDirName">フォルダ名</param>
''' <returns>True / False</returns>
''' <see>http://officetanaka.net/excel/vba/filesystemobject/filesystemobject11.htm</see>
''' <remarks>FolderExistsメソッドを使う方法</remarks>
Public Function FolderExistsFSO(ByVal strDirName As String) As Boolean
With CreateObject("Scripting.FileSystemObject")
If .FolderExists(strDirName) Then
FolderExistsFSO = True
End If
End With
End Function
ファイルの一覧を取得する
''' <summary>
''' ファイルの一覧を取得する
''' </summary>
''' <param name="strDirPath">フォルダ名</param>
''' <returns>ファイルの一覧</returns>
''' <see>http://officetanaka.net/excel/vba/file/file07.htm</see>
''' <remarks>Dir関数を使う方法</remarks>
Public Function GetFileList(ByVal strDirPath As String) As String()
Dim strFileName As String
Dim intCnt As Integer
strFileName = Dir(strDirPath & "*.xlsx")
Do While FileName <> ""
GetFileList(intCnt) = strFileName
strFileName = Dir()
intCnt = intCnt + 1
Loop
End Function
''' <summary>
''' ファイルの一覧を取得する
''' </summary>
''' <param name="strDirPath">フォルダ名</param>
''' <returns>ファイルの一覧</returns>
''' <see>http://officetanaka.net/excel/vba/file/file07.htm</see>
''' <remarks>FileSystemObjectを使う方法</remarks>
Public Function GetFileListFSO(ByVal strDirPath As String) As String()
Dim f As Object
Dim intCnt As Integer
With CreateObject("Scripting.FileSystemObject")
For Each f In .GetFolder(strDirPath).Files
GetFileListFSO(intCnt) = f.Name
intCnt = intCnt + 1
Next f
End With
End Function
ブックを開く
''' <summary>
''' ブックを開く
''' </summary>
''' <param name="strFileName">ファイル名</param>
''' <returns>ブック</returns>
''' <see>http://officetanaka.net/excel/vba/file/file01.htm</see>
''' <remarks>最も安全にブックを開く方法</remarks>
Public Function WorkbooksOpen(ByVal strFileName As String) As Workbook
'ファイル存在チェック
If FileExists(strFileName) = True Then
Exit Function
End If
'同名ブックチェック
If IsOpenBook(strFileName) = True Then
Exit Function
End If
'ここでブックを開く
Set WorkbooksOpen = Workbooks.Open(strFileName)
End Function
コメント