即効テクニック |
● 概要 ● ブックの新規作成を制限するには、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プロパティを利用して画面の更新をキャンセルしています。