Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


32743 / 76734 ←次へ | 前へ→

【49225】Re:エクセルで一つのブックしか開けなくする方法は?
回答  りん E-MAIL  - 07/5/28(月) 6:31 -

引用なし
パスワード
   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イベントで、すでに開いているものがあれば閉じるなどの処理を入れるとよいかもしれません。
4 hits

【49199】エクセルで一つのブックしか開けなくする方法は? furuya 07/5/27(日) 14:55 質問
【49212】追加補足 furuya 07/5/27(日) 22:05 質問
【49225】Re:エクセルで一つのブックしか開けなくす... りん 07/5/28(月) 6:31 回答
【49230】Re:エクセルで一つのブックしか開けなくす... ichinose 07/5/28(月) 8:07 発言
【49226】Re:エクセルで一つのブックしか開けなくす... りん 07/5/28(月) 6:38 発言

32743 / 76734 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free