プロが教えるわが家の防犯対策術!

SQL Server から RDO を利用して結果をEXCELファイルに出力するという
プログラムを作成しています。
しかし、データが大量にあると途中でフリーズ(?)してしまいます。
画面をクリックしたり、キーボードのキーを押下すると以下のようなメッセージ
が表示されてしまいEXCEを強制終了するしか方法がなくなってしまいます。
メッセージ:「コンポ-ネントが利用できません」
データ件数が3000件ぐらいまでなら問題なく動作するのですが
4000件以上になると発生します。
環境の問題なのでしょうか? それともソース上になにか問題があるのでしょうか?
どなたか教えてください。 よろしくお願いします。

環境:
  OS Win98
  VB 6.0 SP3
  EXCEL 2000
以下 ソースの抜粋
****************************************************************  
  Dim lApp As Excel.Application
Dim lBook As Excel.Workbook
Dim lSheet As Excel.Worksheet
Dim lRow As Long
Dim lCol As Long
Dim lValue As String

Set lApp = CreateObject("EXCEL.APPLICATION")
Set lBook = lApp.Workbooks.Add
Set lSheet = lBook.Sheets(1)

lRow = 0

'*-----------------------------*
''データをシートにセット
'*-----------------------------*
Do Until lRst.EOF

lRow = lRow + 1

For lCol = 1 To lRst.rdoColumns.Count
lValue = GFNC_ChgStr(lRst.rdoColumns(lCol - 1).Value)
lSheet.Cells(lRow, lCol).Value = lValue
Next lCol

lRst.MoveNext
Loop
Set lSheet = Nothing

lBook.SaveAs FileName:='C:\AAA.XLS'
lBook.Close: Set lBook = Nothing
lApp.Quit
Set lApp = Nothing

A 回答 (1件)

セルに一つずつ代入するのではなく、VBの2次元配列からRangeに一括して代入しましょう。



参考URL:http://www.microsoft.com/japan/support/kb/articl …
    • good
    • 0
この回答へのお礼

ありがとうございました!
おかげさまで解決しました。

お礼日時:2002/03/20 17:57

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!