№0003. Excel VBA-[新しいExcelブックを作成する。/Excelブックをアクティブにする。]
Excelマクロでは、新しいExcelブックを作成したり、開いている複数のExcelブックの中から一つのExcelブックをアクティブにすることができます。
Addメソッド/Activateメソッド
Addメソッドは、新しいExcelブックを作成し、追加された新しいExcelブックをアクティブにします。
Activateメソッドは、開いている複数のExcelブックの中から指定した一つのExcelブックをアクティブにします。
今回は、Sample_NewBook()プロシージャに、次の処理を実装した例を掲載します。
※Sample_NewBook()プロシージャは、任意の名前です。
なお、ワークシート上のフォーム・ボタンをクリックした時に、Sample_NewBook()プロシージャを起動することとします。
また、Sample_NewBook()プロシージャは、標準モジュールのModule1モジュール内に記述します。
- Addメソッドにより、新しいExcelブックを作成する。ただし、追加作成されるExcelブックの名前はディフォルトとする。
- 追加作成されるExcelブックをアクティブにする。
- 元のExcelブックを、アクティブにするかを確認する。。
- 元のExcelブックをアクティブにするを選択した場合、元のExcelブックをアクティブにする。
- #Ifディレクティブを使用して、デバッグモードと本番モードで動作を変更する。
《ソースコード》
Option Explicit #Const DEBUG_VERSION = 1 ' 本番環境の場合は = 1 Public Sub Sample_NewBook() ' 新しいブックの作成 Dim objWorkBook As Object ' Excelブックオブジェクトを格納するオブジェクト型変数 Dim lngReturnCode As Long Set objWorkBook = Workbooks.Add ' 新しいExcelブックを作成する。 #If DEBUG_VERSION Then ' VBAの動作確認 MsgBox "「" & objWorkBook.Name & "」を作成し、このExcelブックをアクティブにしました。", vbInformation + vbOKOnly, "Excel VBA No.0003" #End If Workbooks(objWorkBook.Name).Activate ' 新しく作成したExcelブックをアクティブにする。 lngReturnCode = MsgBox("「" & ThisWorkbook.Name & "」をアクティブにしますか?", vbInformation + vbYesNo, "Excel VBA No.0003") If lngReturnCode = vbYes Then ' "Yes"ボタンがクリックされた場合 Workbooks(ThisWorkbook.Name).Activate ' このExcelブックをアクティブにする。 End If Set objWorkBook = Nothing End Sub
update:2008.06.20
Copyright (C) 2008 S.IKE