Microsoft ExcelでVBAを使用して、新しいワークブックを作成します。
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については、下の写真を参照してください。
次の図は、新しいワークブックで作成されたシートの数を示しています。
また、次の図のように、ExcelオプションのApplication.SheetsInNewWorkbookパラメーターに数値10が表示されます–
Application.SheetsInNewWorkbook = OriginalWorksheetCount TheApplication.SheetsInNewWorkbookは、wsCountが設定される前に存在していた元の番号に戻されます。したがって、元の番号が1または3の場合、このパラメーターはその番号に戻ります。
ブログが気に入った場合は、Facebookで友達と共有してください。また、TwitterやFacebookでフォローすることもできます。
皆様からのご意見をお待ちしております。私たちの仕事を改善、補完、革新し、より良いものにする方法をお知らせください。
までお問い合わせください=== [email protected]