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

投稿時間:2003/10/14(Tue) 00:45
投稿者名:yumi
URL :
タイトル:
Excelの手動終了のイベント
はじめまして。VB初心者です。
今、VB上のカレンダーから該当の日付のExcelファイルを開いて、使用者が
手動で保存を行った時にその内容を別のExcelファイルに反映する処理を
しようとしています。
EventやOLEとかで処理かで処理が出来るかと思い、ファイルを保存する前とか、
クローズする前のイベントで処理出来ないかと思いましたが、うまくいきません。
出来れば、Excelが終了した後で、VBの反映する処理を行いたいのです。
どうしても出来なくて困っています。
良い案があれば、お教えいただきたく、よろしくお願いします。

投稿時間:2003/10/14(Tue) 10:48
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re: Excelの手動終了のイベント
> クローズする前のイベントで処理出来ないかと思いましたが、うまくいきません。
どのようにうまくいかないのでしょうか。

Excelの保存のオプションのバックアップファイルを作成するにチェックを入れておけばいいのでは。
又は、Workbook_BeforeSaveイベントに書いておけばいいかと思いますが。

投稿時間:2003/10/16(Thu) 01:23
投稿者名:yumi
URL :
タイトル:
Re^2: Excelの手動終了のイベント
回答、ありがとうございます。
> > クローズする前のイベントで処理出来ないかと思いましたが、うまくいきません。
> どのようにうまくいかないのでしょうか。

説明が不十分で申し訳ありません。
クローズする前のイベントで処理を行った時に、Excel.exe残ってしまいました。
自動で同じ処理をしていますが、残りませんでした。
自分としては、手動終了後に処理が出来れば、と思い、お聞きしました。
コードは下記の様にしました。
Private Sub xlApp_WorkbookBeforeClose(ByVal Wb As Excel.Workbook, Cancel As Boolean)
    Dim a As String
    Dim iSet
    
    If Mente_FL = 1 Then                            '修正ボタンが押された時
        Mente_FL = 0
        xlBook.Application.Visible = False
        
        DoEvents
        iSet = MsgBox("保存しますか?", vbYesNo)
        
        If iSet = vbYes Then
            xlBook.Save
            iSaved = True
            Set xlBook = Nothing

            Set xlBook = xlApp.Workbooks.Open(別のExcelファイル)
            セーブ処理                                 '日報ファイルから月報データを読込
            Set xlBook = Nothing
      Set xlApp = Nothing        
        Else
            xlBook.Saved = True
            iSaved = False
            Set xlBook = Nothing
      Set xlApp = Nothing
        End If      
    End If
End Sub