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

投稿日: 2005/08/24(Wed) 17:58
投稿者ま〜さ
URL
タイトルExcelプロセスが残る

OS)Windows2000/XP  VB.net  Excel2000/2003

はじめまして、いつも利用させていただいております。
語り尽くされた問題かも知れませんが、"Excelのプロセスが残る"ということ
で添付のようなことが起きました。
3)〜4)のコーディング(Excelのセルにデータを貼り付ける)プロセスが正常に終了して
いたプログラムに1)〜2)(編集のための情報をセルから入手する)を追加しましたとこ
ろExcelプロセスが終了しない事象が起きました。
(a)〜(e)まで5セルの内容を取得しようとすると終了しませんがこのうち2行をコメント
アウトし、3セルを取得にすると正常に終了します。
とりあえず、Cellsの使用をやめRangeで取得【5)〜6)参照】するように変更したら動作
するようになってますので現在は問題にはなっていません。
後学のためなにがいけなかったかお教えいただけませんでしょうか?

--------------------------------------------------
1)      Const yLine As Integer = 3
        Const yQtyQ As Integer = 8
        Const yQtyX As Integer = 9
        Const yQtyN As Integer = 10
        Const yQtyG As Integer = 11
        Const yPrice As Integer = 12
        Const yAmount As Integer = 13
        xlSheet = xlSheets(cDetailSheet)                
        xlCells = xlSheet.Cells
(a)     zQtyQ = xlCells(yLine, yQtyQ).text              'QTY1 TAG
(b)     zQtyX = xlCells(yLine, yQtyX).text              'QTY2 TAG
(c)     zQtyN = xlCells(yLine, yQtyN).text              'QTY3 TAG
(d)     zQtyG = xlCells(yLine, yQtyG).text              'QTY4 TAG
(e)     zPrice = xlCells(yLine, yPrice).text            'Price TAG
        zAmount = xlCells(yLine, yAmount).text          'Amount TAG
        MRComObject(xlCells)                            'xlCells の開放
2)      MRComObject(xlSheet)                            'xlSheet の開放
        
3)      '===== 5. 共通(Head)データの編集 =====
        Call pCommonData()
        xlSheet = xlSheets(cCommonSheet)
        xlRange = xlSheet.Range("e3:H180")              'データの入力セル範囲
        xlRange.Value = strDat                          'セルへデータの入力
        MRComObject(xlRange)                            'xlRange の開放
        MRComObject(xlSheet)                            'xlSheet の開放

        Call pCommonData2()
        xlSheet = xlSheets(cControlSheet)
        xlRange = xlSheet.Range("d9:e45")               'データの入力セル範囲
        xlRange.Value = strDat                          'セルへデータの入力
        MRComObject(xlRange)                            'xlRange の開放
4)      MRComObject(xlSheet)                            'xlSheet の開放
        :
        :

-----------------------------------------------------
5)      Const yQtyQCell As String = "H3"
        Const yQtyXCell As String = "I3"
        Const yQtyNCell As String = "J3"
        Const yQtyGCell As String = "K3"
        Const yQtyPCell As String = "L3"
        Const yQtyACell As String = "M3"
        xlSheet = xlSheets(cDetailSheet)                    '明細データシート
        xlRange = xlSheet.Range(yQtyQCell)
        zQtyQ = xlRange.Text                                'QTY1 TAG
        MRComObject(xlRange)                                'xlCells の開放
        xlRange = xlSheet.Range(yQtyXCell)
        zQtyX = xlRange.Text                                'QTY2 TAG
        MRComObject(xlRange)                                'xlCells の開放
        xlRange = xlSheet.Range(yQtyNCell)
        zQtyN = xlRange.Text                                'QTY3 TAG
        MRComObject(xlRange)                                'xlCells の開放
        xlRange = xlSheet.Range(yQtyGCell)
        zQtyG = xlRange.Text                                'QTY4 TAG
        MRComObject(xlRange)                                'xlCells の開放
        xlRange = xlSheet.Range(yQtyPCell)
        zPrice = xlRange.Text                               'Price TAG
        MRComObject(xlRange)                                'xlCells の開放
        xlRange = xlSheet.Range(yQtyACell)
        zAmount = xlRange.Text                              'Amount TAG
        MRComObject(xlRange)                                'xlCells の開放
6)      MRComObject(xlSheet)                                'xlSheet の開放

ちなみに3)〜4)の作成の際は掲示板の記述を参考にさせていただきました。
おかげさまで3)〜4)の部分についてはあまり問題なく動作しました。


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

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

- VBレスキュー(花ちゃん) - - Web Forum -