タイトル | : エクセル行削除を行うと、プロセスが残ってしまいました。 |
記事No | : 2781 |
投稿日 | : 2005/12/16(Fri) 17:08 |
投稿者 | : 徳蔵丸 |
[OSのVer]:Windows2000 [VBのVer]:VB.NET 2003 お世話になっております。 昨日お助けいただいた内容で結構つぶせたのですが、 どうしても解決できないのでまた質問させていただきます。 今回のメモリ開放できないロジックは、問題Bの個所です。
最初に、セル範囲(1, 2, 4, 5)をコピーし、 次に、セル(6, 2)貼り付ける そして、コピー先の最下行を削除する。 と言うプログラムです。
当初は、ペーストのときも「xlRange.Copy(destination:=xlCells(6, 2))」 のロジックを使っていたのでプロセスが残ってしまいましたが、これは 過去ログを参照させて頂いて下記ロジックのように解決できました。 しかし、「問題B」のロジックについてはどうしてもプロセスを開放することが できなくて困っています。 どうしたら開放することができるのでしょうか。 どうぞ、よろしくお願い致します。
Dim xlCells As Excel.Range Dim xlRange As Excel.Range Dim xlRangeX As Excel.Range Dim xlRangeY As Excel.Range Dim xlRangePaset As Excel.Range
'セル範囲(1, 2, 4, 5)をコピーする。 xlCells = xlSheet.Cells xlRangeX = xlCells(1, 2) MRComObject(xlCells) xlCells = xlSheet.Cells xlRangeY = xlCells(4, 5) MRComObject(xlCells) xlRange = xlSheet.Range(xlRangeX, xlRangeY) MRComObject(xlRangeX) MRComObject(xlRangeY) xlRange.Copy()
'コピーした範囲をセル(6, 2)貼り付ける xlCells = xlSheet.Cells xlRangePaset = xlCells(6, 2) xlRangePaset.Insert() MRComObject(xlRangePaset) MRComObject(xlCells) MRComObject(xlRange)
'コピーした表の最下行を削除する。 xlCells = xlSheet.Cells xlRange = xlCells(9, 1) xlRange.EntireRow.Delete() '←問題B
|