[リストへもどる]   [VBレスキュー(花ちゃん)]
一括表示

投稿時間:2004/12/23(Thu) 23:11
投稿者名:あさがお
URL :
タイトル:
VBからExcelのプレビューをよび、終わるとExcelが終わってVBの画面に戻ってくるにはどうしたら良いのでしょうか?
ココがあっている掲示板か分からないのですが、Excelに詳しい人が分かるのではと思いココにしました。
いろいろ見てがんばってみたのですがどうしても出来ません。
以下に作ったプログラムを載せます。おかしい所をご指摘ください。
お願いします。

したい事は、VBからExcelのプレビューをよび、終わるとExcelが終わってVBの画面に戻ってくる事です。
ちなみにExcelの通常画面は出ないようにしたいのですが。それが出来る事かどうか分かりません。
何より下のプログラムを手動で一つづつ動かすとExcelが無事終わるのに、
実行さすとExcelがメモリーに残って動かなくなります。



        'エクセルを起動する
        Set AppExcel = CreateObject("EXCEL.Application")
        AppExcel.Visible = True
        Set xlBook = AppExcel.Workbooks.Open(FILE_NM)
        Set xlSheet = AppExcel.Worksheets(PG_ID)
        AppExcel.Sheets(PG_ID).SELECT
  
        'プレビュー
        xlSheet.PrintPreview
        
        'エクセルの終了
        AppExcel.Sheets(PG_ID).SELECT
        AppExcel.Quit
        
        Set xlSheet = Nothing                'エクセルの開放
        Set xlBook = Nothing
        Set AppExcel = Nothing

投稿時間:2004/12/24(Fri) 08:41
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re: VBからExcelのプレビューをよび、終わるとExcelが終わってVBの画面に戻ってくるにはどうしたら良いのでしょうか?
> ちなみにExcelの通常画面は出ないようにしたいのですが。それが出来る事かどうか分かりません。
通常画面とは?

> 何より下のプログラムを手動で一つづつ動かすとExcelが無事終わるのに、
> 実行さすとExcelがメモリーに残って動かなくなります。

手動で一つづつ動かす
実行さすとExcelが
とは?
投稿されたコードは一部のようですが、他の部分はどうなっていますか?

下記コードで、試して見ましたが、プレビューを終了するとExcelが閉じられてプロセスも終了
していますが。
VB6.0 (SP5) Excel 2002 WindowsXP

Private Sub Command1_Click()
    Dim AppExcel    As Excel.Application
    Dim xlBook   As Excel.Workbook
    Dim xlSheet As Excel.Worksheet
    Set AppExcel = CreateObject("EXCEL.Application")
    Set xlBook = AppExcel.Workbooks.Open("C:\Temp.xls")
    Set xlSheet = AppExcel.Worksheets(1)
    
    AppExcel.Sheets(1).Select
    
    AppExcel.Visible = True
    'プレビュー
    xlSheet.PrintPreview
    
    'エクセルの終了
    AppExcel.Sheets(1).Select
    AppExcel.Quit
    
    Set xlSheet = Nothing 'エクセルの開放
    Set xlBook = Nothing
    Set AppExcel = Nothing

End Sub

投稿時間:2004/12/24(Fri) 09:10
投稿者名:LESIA
Eメール:
URL :
タイトル:
Re: VBからExcelのプレビューをよび、終わるとExcelが終わってVBの画面に戻ってくるにはどうしたら良いのでしょうか?
>         'エクセルを起動する
>         Set AppExcel = CreateObject("EXCEL.Application")
>         AppExcel.Visible = True
>         Set xlBook = AppExcel.Workbooks.Open(FILE_NM)
>         Set xlSheet = AppExcel.Worksheets(PG_ID)

ワークシートPG_IDがFILE_NMのワークシートなら
Set xlSheet = xlBook.Worksheets(PG_ID)
にしたほうが良いです。

>         AppExcel.Sheets(PG_ID).SELECT
これも
xlSheet.Select
の方が良いです。

>         'エクセルの終了
>         AppExcel.Sheets(PG_ID).SELECT
>         AppExcel.Quit

Quitする前にSelectしてもあまり意味がないので(^^;
AppExcel.Quit
エクセルの終了は、この1行だけで良いです。

投稿時間:2004/12/24(Fri) 13:57
投稿者名:あさがお
URL :
タイトル:
Re^2: VBからExcelのプレビューをよび、終わるとExcelが終わってVBの画面に戻ってくるにはどうしたら良いのでしょうか?
ありがとうございました。
LESIAさんのご指摘のところを直し、花ちゃんの出来ていると言う言葉に促されてもう一度やってみると出来ました。何故なのかよく分からないのですが、メモリが不足すると「○○メゾットに失敗しました」と出るのでしょうか?

投稿時間:2004/12/24(Fri) 14:05
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re^3: VBからExcelのプレビューをよび、終わるとExcelが終わってVBの画面に戻ってくるにはどうしたら良いのでしょうか?
> メモリが不足すると「○○メゾットに失敗しました」と出るのでしょうか?

シートへの読み書きを頻繁にやっているとか、投稿されたコード以外でも何か
処理していませんか?