No1を使用して、こんな事もしてみました。
Sub test() Dim newbk As Workbook Set newbk = createBookWithSheets(Array("北海道", "東京", "大阪", "沖縄")) Set newbk = createBookWithSheets("日本") End Sub
' 新規ブック作成 ' ' 概要: ' 指定された名前のワークシートのみで構成されたブックを作成する。 ' 単一のシート名が指定された場合はそのシート1つ、配列で指定された場合は ' その全てのワークシートが挿入される。 ' ' INPUT : sheetNames 挿入するシート名またはその配列 ' OUTPUT : --- ' RETURN : 作成されたブック ' ' @author iiyan.net ' @date 2001/10/18 ' @version 1.0 Function createBookWithSheets(sheetNames As Variant) As Workbook Dim sheetCount As Integer Dim i As Integer Dim bk As Workbook If (IsNull(sheetNames)) Then Set createBookWithSheets = Nothing Else If (IsArray(sheetNames)) Then sheetCount = UBound(sheetNames) - LBound(sheetNames) + 1 Set bk = createBook(sheetCount) For i = 1 To sheetCount bk.Worksheets(i).Name = sheetNames(i - 1) Next i Else Set bk = createBook(1) bk.Worksheets(1).Name = sheetNames End If Set createBookWithSheets = bk End If End Function