■9283 / inTopicNo.10) |
Re[5]: Excelがフリーズする |
□投稿者/ 魔界の仮面弁士 中佐(212回)-(2006/12/18(Mon) 10:54:58)
|
分類:[VB.NET]
■No9279に返信(廿六木(かなり初心者さんの記事) > 会社の他のWindows98で実行したところ、このような現象が起こります。
9x 系からの Excel 操作がありえるのならば、 1.8万行を一括転送するのは避けた方が良いかと思います。
さしあたり、 ・巨大なデータを送るときは、複数回に分割して送信する。 ・OpenText や OpenXML で開くことも要検討。 ・かつ、Excel の操作回数はできるだけ減らすこと。 いったという点に気をつけてみてください。 http://support.microsoft.com/kb/414107/ja
それでも駄目なら、効果は薄いかも知れませんが、配列サイズの変換を避けるため、 Range.Value に渡す配列のインデックスを、Excel にあわせた 1 ベースの物に 修正してみるとか。たとえば、下記のようなコードを実行すると、最後の配列は、 VB.NET で作成可能な V(0, 0)〜V(5, 2) という 0 ベースの範囲のものではなく、 V(1, 1)〜V(6, 3) という 1 ベースの範囲の値として取得されます。
Option Strict Off Module Module1 Sub Main() Dim X As Object = CreateObject("Excel.Application") X.Visible = True Dim Bs As Object = X.Workbooks Dim B As Object = Bs.Add() Dim Ss As Object = B.Sheets Dim S As Object = Ss(1) Dim R As Object = S.Range("A5:C10") Dim V(,) As Object = R.Value '解放コードは省略 End Sub End Module
|
0
|