[リストへもどる]
一括表示

投稿時間:2003/10/11(Sat) 02:36
投稿者名:やまちゃん
Eメール:yuji_yamada@tsuruga.toyobo.co.jp
URL :
タイトル:
WindowsからのExcel終了を1Book単位にできない?
はじめまして.さっそくですが宜しくお願いします。
VBよりCreateObject()にて常時開いた状態にしたいのですが、
Windowsの操作であるフォルダー内にある通常のExcelファイルをダブルクリック
で開いたあとに終了させると、VBで開いたExcelも一緒に閉じられます。

Wordなどは、Windowsで操作しても、1ファイル毎に終了できますが、
Excelも1Book毎に終了する方法がありますか?
Appxls.intarctive=falseを使用すると、Windowsの操作でExcelを終了させられません。
環境: Excel 2000、VisualBasic6.0、Windows2000です。

以上宜しくお願いします。

投稿時間:2003/10/11(Sat) 11:23
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re: WindowsからのExcel終了を1Book単位にできない?
> Wordなどは、Windowsで操作しても、1ファイル毎に終了できますが、
> Excelも1Book毎に終了する方法がありますか?

閉じるボタン等ではExcel自体の終了になります。
Book単位で終了するには、メニューバーのファイルの閉じるで閉じるか
右上の閉じるボタンの下にある、もうひとつの閉じるボタンで閉じれば、その
Bookだけの終了(閉じる)になります。

と言う事でしょうか?、質問の意味を取り違えていたらごめんなさい。

投稿時間:2003/10/11(Sat) 11:43
投稿者名:やまちゃん
Eメール:yuji_yamada@tsuruga.toyobo.co.jp
URL :
タイトル:
Re^2: WindowsからのExcel終了を1Book単位にできない?
レスありがとうございます。少し説明不足でした。

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

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

投稿時間:2003/10/12(Sun) 10:28
投稿者名:やまやん
Eメール:yuji_yamada@tsuruga.toyobo.co.jp
URL :
タイトル:
Re^4: WindowsからのExcel終了を1Book単位にできない?
>タイトルを「この場を借りて投稿名=>やまやんへ変更」
としたいのですが余計おかしいと思われるのでここまで読んだ方に
ご理解頂きたいと思います。

すいません。既に「やまちゃん」さんが居るのに重複した投稿名を使用
し、失礼しました。
過去ログ検索で重複しない投稿名にさせて頂きます。
この投稿自身が投稿違反と評されるかもしれませんが。
以上「やまちゃん」様、管理者様、返信者及び閲覧者に対しお詫びしたい
と思います。失礼します。