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 ' 本番環境の場合は = 0
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
ダウンロードはこちら。
※ご注意:ダウンロードされるExcelブックには、Excel VBAによるマクロが記述されています。
update:2008.06.20
□トップページに戻る。□
Copyright (C) 2008 S.IKE