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

タイトル Re^2: Cells.FindNextのループ中の解放
投稿日: 2009/09/16(Wed) 14:55
投稿者camputer
 魔界の仮面弁士 様

 どうもありがとうございます!!
>→ オブジェクト2を破棄する
>  (myRng と myFindNext の両方の参照先が使えなくなる)
についてですが、アドバイスいただいた後もしばらく考え続けてみましたが
myFindNextのみオブジェクト2を破棄する、といったような方法が思いつきません。。。
どうにかしてオブジェクト2を次回のループ先頭まで保持しておきながら、
毎回myFindNextを解放処理する必要があると思うのですが。
根本的に検索の文法がおかしいのでしょうか???
 一応下のようにMRComObject(myFindNext)をコメントアウトしてもExcel.EXEが
解放されますが、オブジェクト2を破棄できていないはずですし。。

                Dim xlCells As Excel.Range = xlSheet.Cells
                Dim myRng As Excel.Range = xlCells.Find("文字列")

                If Not MyRng Is Nothing Then
                    Dim 最初セル As String = myRng.Address
          Do  
                        Dim myFindNext As Excel.Range = xlCells.FindNext(myRng)
                        MRComObject(myRng)
                        myRng = myFindNext
                            'MRComObject(myFindNext) '←コメントアウト

                        MsgBox(myRng.Value)

            If myRng.Address = 最初セル Then
                          MRComObject(myRng) : myRng = Nothing
                        End If
                    Loop Until myRng Is Nothing
                End If
                MRComObject(myRng)
                MRComObject(xlCells)

 Dim s As String = rng.Address(False, True, Excel.XlReferenceStyle.xlR1C1)
についてはどうもありがとうございました!ご指摘いただけたので
勘違いに気付くことができました^^; As Stringが画面の下に隠れておりました。
As XlReferenceStyle にリンクが付いておりましたので、重ねて勘違いした
次第でございます。
ご指摘いただきどうもありがとうございました。

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

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