Option Explicit
Public Function MakeSheet(aWorkBook As Workbook, Optional aReturn As Worksheet) As Boolean
On Error GoTo Err
aWorkBook.Sheets.Add after:=aWorkBook.Sheets(aWorkBook.Sheets.Count)
Set aReturn = aWorkBook.Sheets(aWorkBook.Sheets.Count)
MakeSheet = True
If logging Then AddLog "SheetUtil.MakeSheet", "INFO ", "対象:" & aWorkBook.Name
Exit Function
Err:
If logging Then AddLog "SheetUtil.MakeSheet", "ERROR", "エラー内容:" & Err.Description
End Function
Public Function DeleteSheet(aWorkBook As Workbook, aSheetName As String) As Boolean
On Error GoTo Err
Application.DisplayAlerts = False
If Not ExistsSheet(aWorkBook, aSheetName) Then GoTo Warn
aWorkBook.Sheets(aSheetName).Delete
DeleteSheet = True
If logging Then AddLog "SheetUtil.DeleteSheet", "INFO ", "対象:" & aSheetName
GoTo Finally
Warn:
DeleteSheet = True
If logging Then AddLog "SheetUtil.DeleteSheet", "WARN ", "対象:" & aSheetName & " / 警告内容:対象のシートが存在しません"
GoTo Finally
Err:
If logging Then AddLog "SheetUtil.DeleteSheet", "ERROR", "対象:" & aSheetName & " / エラー内容:" & Err.Description
Finally:
Application.DisplayAlerts = True
End Function
Public Function CopySheet(aOrigin As Worksheet, Optional aDestination As Workbook, Optional aReturn As Worksheet) As Boolean
On Error GoTo Err
If aDestination Is Nothing Then Set aDestination = aOrigin.Parent
aOrigin.Copy after:=aDestination.Sheets(aDestination.Sheets.Count)
Set aReturn = aDestination.Sheets(aDestination.Sheets.Count)
CopySheet = True
If logging Then AddLog "SheetUtil.CopySheet", "INFO ", "コピー元ブック名:" & aOrigin.Parent.Name & " / コピー元シート名:" & aOrigin.Name & " / コピー先ブック名:" & aDestination.Name
Exit Function
Err:
If logging Then AddLog "SheetUtil.CopySheet", "ERROR", "エラー内容:" & Err.Description
End Function
Public Function MoveSheet(aSource As Worksheet, aDestination As Workbook, Optional aReturn As Worksheet) As Boolean
On Error GoTo Err
aSource.Move after:=aDestination.Sheets(aDestination.Sheets.Count)
Set aReturn = aDestination.Sheets(aDestination.Sheets.Count)
MoveSheet = True
If logging Then AddLog "SheetUtil.MoveSheet", "INFO ", "移動元ブック名:" & aSource.Parent.Name & " / 移動元シート名:" & aSource.Name & " / 移動先ブック名:" & aDestination.Name
Exit Function
Err:
If logging Then AddLog "SheetUtil.MoveSheet", "ERROR", "エラー内容:" & Err.Description
End Function
Public Function ChangeSheetName(aWorkSheet As Worksheet, aSheetName As String) As Boolean
On Error GoTo Err
Dim beforeSheetName As String: beforeSheetName = aWorkSheet.Name
aWorkSheet.Name = aSheetName
ChangeSheetName = True
If logging Then AddLog "SheetUtil.ChangeSheetName", "INFO ", "変更前のシート名:" & beforeSheetName & " / 変更後のシート名:" & aSheetName
Exit Function
Err:
If logging Then AddLog "SheetUtil.ChangeSheetName", "ERROR", "変更後のシート名:" & aSheetName & " / エラー内容:" & Err.Description
End Function
Public Function GetSheetList(aWorkBook As Workbook) As Collection
Dim v As Variant
Set GetSheetList = New Collection
For Each v In aWorkBook.Sheets
GetSheetList.Add v.Name
Next
End Function
Public Function ExistsSheet(aWorkBook As Workbook, aSheetName As String) As Boolean
Dim v As Variant
For Each v In aWorkBook.Sheets
If v.Name = aSheetName Then ExistsSheet = True: Exit For
Next
End Function
Public Function VisibleSheet(aWorkBook As Workbook, Optional aSheetName As String)
Dim v As Variant
For Each v In aWorkBook.Sheets
If aSheetName = "" Then: v.Visible = True
If aSheetName = v.Name Then: v.Visible = True: Exit For
Next
End Function
Public Function InvisibleSheet(aWorkBook As Workbook, aSheetName As String, Optional aIsVeryHidden As Boolean)
Dim v As Variant
For Each v In aWorkBook.Sheets
If v.Name = aSheetName Then
If aIsVeryHidden Then v.Visible = xlVeryHidden
If Not aIsVeryHidden Then v.Visible = False
Exit For
End If
Next
End Function