tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル エクセル行削除を行うと、プロセスが残ってしまいました。
投稿日: 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

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

古いスレッドにレスはつけられません。