|
furuya さん、おはようございます。
>たとえば、ある特定のエクセルのブックを開いている間は、後から他のブックを開こうとしても開けないように設定することは可能でしょうか。
>ある特定のブックと同時に他のブックを開きたくないのです。
クラスでブックの追加を監視します。
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のOpenイベントで、すでに開いているものがあれば閉じるなどの処理を入れるとよいかもしれません。
|
|