投稿日 | : 2003/10/12(Sun) 07:21 |
投稿者 | : やまちゃん |
Eメール | : yuji_yamada@tsuruga.toyobo.co.jp |
URL | : |
タイトル | : Re^3: WindowsからのExcel終了を1Book単位にできない? |
自己レスできました。お騒がせしました。
結局、閉じてほしくないBookのVBA-ThisBookモジュール内のイベント
としてBeforeClose()イベントで対応できました。
参考までに内容を以下に書きます。
ありがとうございました。
====================
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim objBook As Excel.Workbook
If Worksheets("COMMON").Cells(1, 10) <> 1 Then
'' 終了させない
Cancel = True
''' 不要Bookは終了
For Each objBook In Workbooks
If objBook.Name <> "XLSDDE.xls" Then
objBook.Close
End If
Next objBook
Else
''シート[COMMON]のR1C10が1であれば終了
Cancel = False
End If
Set objBook = Nothing
End Sub
> レスありがとうございます。少し説明不足でした。
>
> 1台のPCに機器とのDDE通信かつExcelのBook経由でで通信しようとしています。
> このBookはVBよりOPENしてPCが落ちるまで開いた状態が必要です。
>
> ところが、Excel自身の機能はオペレータに一般開放しているので他のBookを
> ダブルクリックで表示すると、同じBookのWindowと認識されますよね。
> そこでオペレータは用が済んだらExcelの終了を選び終了すると思うんですが
> この場合にVBから開いたExcelも終了しちゃうんです。
>
> 今考えついた方法はVBで開くBook自身のVBAとしてBeforeCloseイベントに
> 自分以外のBookをCloseしてCancel=Trueにして終わらせないようにする
> 仕組みを試そうとしているところです。
>
> 別途アドバイス等あればお願いします。
>
>
> > > Wordなどは、Windowsで操作しても、1ファイル毎に終了できますが、
> > > Excelも1Book毎に終了する方法がありますか?
> >
> > 閉じるボタン等ではExcel自体の終了になります。
> > Book単位で終了するには、メニューバーのファイルの閉じるで閉じるか
> > 右上の閉じるボタンの下にある、もうひとつの閉じるボタンで閉じれば、その
> > Bookだけの終了(閉じる)になります。
> >
> > と言う事でしょうか?、質問の意味を取り違えていたらごめんなさい。