Excel VBA質問箱 IV

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

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


32738 / 76734 ←次へ | 前へ→

【49230】Re:エクセルで一つのブックしか開けなくする方法は?
発言  ichinose  - 07/5/28(月) 8:07 -

引用なし
パスワード
   おはようございます。
>
>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内のコードの実行前に閉じられてしまいます)されます。

これを何とかする方法があれば良いのですが・・・・。
5 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 発言

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