VB6.0用掲示板の過去のログ(No.1)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [過去ログ] [管理用]

投稿日: 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だけの終了(閉じる)になります。
> >
> > と言う事でしょうか?、質問の意味を取り違えていたらごめんなさい。


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- Web Forum -