|
おはようございます。
>
>Classモジュールに以下を記述します
>'=====================================================Class1 Start
>Public WithEvents App As Application
>
>Private Sub App_NewWorkbook(ByVal Wb As Workbook)
> '閉じる処理の実働部分は別
> WBC Wb, "新規追加もできません"
>End Sub
>
>Private Sub App_WorkbookOpen(ByVal Wb As Workbook)
> If Wb.Name <> ThisWorkbook.Name Then
> '閉じる処理の実働部分は別
> WBC Wb, "同時に起動はできません"
> End If
>End Sub
>'共通処理部分
>Sub WBC(arg1 As Workbook, arg2 As String)
> MsgBox arg2, vbExclamation, "ごめんね"
> arg1.Saved = True
> arg1.Close
>End Sub
>'=====================================================Class1 End
>
>ThisWorkbookに以下を記述します
>'=====================================================ThisWorkbook Start
>Dim Cl As New Class1
>Private Sub Workbook_Open()
> Set Cl.App = Application
>End Sub
>'=====================================================ThisWorkbook End
>
>こんな感じです。
>
>このブックを保存した後で開いた後で、ファイルを開いたり新規作成してみてください。
>一度開きかけますが、すぐに閉じます。
私もこれで良いと思っていたのですが、ひとつだけ留意点が・・。
開くブックの中に
ThisworkBookのWorkbook_Openイベントが記述されていると
これを実行してしまいます。
例えば、
開いたブック内に
Private Sub Workbook_Open()
UserForm1.Show
End Sub
なんて記述があるとユーザーフォームが表示されてしまいます。
因みにこれ、Auto_Open()内で記述した場合は、
正常に処理(Auto_Open内のコードの実行前に閉じられてしまいます)されます。
これを何とかする方法があれば良いのですが・・・・。
|
|