💭
【VBA】ブックに集計シートがないときに集計シートを追加するコード
市町村の様式を1つのブックに集めて集計→串刺しという処理を自動化する際、集計シートなど、必要なシートがない場合のエラー処理のコードになります。
Function checkSheetExists(wb As Workbook, sheetName As String) As Boolean
Dim ws As Worksheet
Dim sheetExists As Boolean
'初期値をFalseに設定
sheetExists = False
For Each ws In wb.Sheets
If ws.Name = sheetName Then
sheetExists = True
Exit For
End If
Next ws
If sheetExists Then
checkSheetExists = True
Else
checkSheetExists = False
End If
End Function
引数として指定したキーワードのシートがある場合はTrueを、ない場合はFlaseを返します。
sheetExitsに真偽値をいったん入れて、Trueになるかすべてのシートを確認したら走査を抜けます。
使い方
Sub test()
If checkSheetExists(ThisWorkbook, "集計") Then
MsgBox "集計シートあり"
Else
MsgBox "集計シートがないので追加します。"
Worksheets.Add before:=Worksheets(1)
ActiveSheet.Name = "集計"
End If
End Sub
集計シートがない場合は先頭に集計シートに追加します。
集計処理の途中にこのコードを差し込んでみてください。
あまり使いませんが、最後尾に追加する場合は以下のようになります。
Worksheets.Add After:=Worksheets(Worksheets.Count)
Worksheets.Countはシートの枚数を取得しています。そのあとに挿入しますよという感じです。
Discussion