投稿日 | : 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)の部分についてはあまり問題なく動作しました。