HOME > 即効テクニック > Excel VBA > その他関連のテクニック > ブックの新規作成を制限する

即効テクニック

その他関連のテクニック

ブックの新規作成を制限する

(Excel 2000/2002/2003)
● 概要 ●

ブックの新規作成を制限するには、WithEventsキーワードを利用して、Applicationクラスのイベントをハンドルします。

構文 Private[Dim/Public] WithEvents 変数名 As データ型 
設定項目    内容
変数名     オブジェクト変数用の変数名
データ型    オブジェクト変数のデータ型


次のサンプルは、このプログラムが記述されたブックが開いている間は、ブックの新規作成ができません。
WithEventsキーワードを利用して宣言したオブジェクト変数にこのブックが開いた際に参照を設定します。ブックを新規に作成すると、ApplicationクラスのNewWorkbookイベントが発生しますが、その際、メッセージボックを表示し、新規に作成されたブックをCloseメソッドで直ちに閉じています。


● サンプル ●
'ブックモジュールに記述します
Private WithEvents TempApplication As Application

Private Sub TempApplication_NewWorkbook(ByVal Wb As Workbook)
    Application.ScreenUpdating = False
    MsgBox "新規にブックを作成することはできません"
    Wb.Close False
    Application.ScreenUpdating = True
End Sub


Private Sub Workbook_Open()
    Set TempApplication = Application
End Sub


● ポイント ●
このサンプルでは、一旦作成される新規ブックを直ちに閉じることでブックの新規作成をキャンセルしています。
一旦作成されたブックを見せないように、ApplicationクラスのScreenUpdationgプロパティを利用して画面の更新をキャンセルしています。