vbaコードまたはマクロを使用して、特定の数のシートを含む新しいワークブックを作成する必要がある場合があります。これは、新しいワークブックを作成し、開いてから最大255個の新しいワークシートで保存できる単純なマクロです。このサンプルマクロでは、10個のワークシートを含む新しいワークブックを作成します。

Option Explicit _Sub create_workbook()

Dim wb As Workbook Set wb = NewWorkbook(10)

End Sub_ _Function NewWorkbook(wsCount As Integer)As Workbook Dim OriginalWorksheetCount As Long Set NewWorkbook = Nothing If wsCount <1 Or wsCount> 255 Then Exit Function OriginalWorksheetCount = Application.SheetsInNewWorkbook Application.SheetsInNewWorkbook = wsCount Set NewWorkbook = Workbooks.Add Application.SheetsInNewWorkbook = OriginalWorksheetCount End Function_コード説明:

まず、「_ create_workbook_」というプロシージャがあります。この手順では、ワークブックとして変数wbがあり、この変数を介して関数NewWorkbookを呼び出します。したがって、新しい関数が呼び出され、wscountは新しいワークブックのワークシートの数である10に設定されます。

次に、呼び出された関数である_Function NewWorkbook(wsCount as Integer)as Workbookに移動します。_wsCountの値である10は、create_workbookサブから渡されます。

Set NewWorkbook = Nothing

まず、NewWorkbookは何も設定されていないため、以前のコードで割り当てられた可能性のある他の値をクリアできます。

wsCount <1またはwsCount> 255の場合、関数を終了します

次に、subから渡された値が1未満か255より大きいかを確認する必要があります。これらのチェックのいずれかに対する答えが「はい」の場合は、関数を終了します。

OriginalWorksheetCount = Application.SheetsInNewWorkbook

新しいワークブックに含めるシートの数が設定されるExcelオプションページにパラメータがあります。この値を変数_OriginalWorksheetCountに渡します。_*この変数は、Excelオプションですでに事前設定されているデフォルトのシート数を保持します。

Application.SheetsInNewWorkbook = wsCount

次に、サブから渡されるwsCountの値を、新しいワークブックに含めるシート数のExcelオプションのパラメーターに割り当てます。したがって、このパラメーターは古い値から10に変更されます。古い値は1、3、またはユーザーが設定したその他の数値にすることができます。

Set NewWorkbook = Workbooks.Add

NewWorkbookに割り当てられる新しいワークブックを作成します。この新しいワークブックは、wsCountで指定されたシート数で作成されます。 Sheet1からSheet10というタイトルの10枚の新しいワークブックが表示されます。作成された新しいファイルBook3については、下の写真を参照してください。

img1

次の図は、新しいワークブックで作成されたシートの数を示しています。

img2

また、次の図のように、ExcelオプションのApplication.SheetsInNewWorkbookパラメーターに数値10が表示されます–

img33

Application.SheetsInNewWorkbook = OriginalWorksheetCount TheApplication.SheetsInNewWorkbookは、wsCountが設定される前に存在していた元の番号に戻されます。したがって、元の番号が1または3の場合、このパラメーターはその番号に戻ります。

img55

image 48

ブログが気に入った場合は、Facebookで友達と共有してください。また、TwitterやFacebookでフォローすることもできます。

皆様からのご意見をお待ちしております。私たちの仕事を改善、補完、革新し、より良いものにする方法をお知らせください。

までお問い合わせください=== [email protected]