私のコードでは、作成に時間がかかりすぎますが、SQLのクエリからExcelファイルが正常に作成されます。
コードは以下の通りです:VB(多くの行)を使用してExcelに書き込む
rsAnaforaPr.DoQuery("SELECT * FROM [dbo].[zam_excel]")
rsAnaforaPr.MoveFirst()
hj = False
rowCount = 1
While rsAnaforaPr.EoF = False
shell1 = rsAnaforaPr.Fields.Item("Value1").Value
If hj = False Then
oExcel = CreateObject("Excel.Application")
oExcel.DisplayAlerts = False
oBook = oExcel.Workbooks.Add
hj = True
oBook.SaveAs("C:\Desktop\New folder\excel.xlsx")
oBook.Close(True)
oExcel.Quit()
oExcel = CreateObject("Excel.Application")
oExcel.DisplayAlerts = False
oBook = oExcel.Workbooks.Open("C:\Desktop\New folder\excel.xlsx")
oSheet = oBook.Worksheets("Sheet1")
oSheet.Range("A" & rowCount).Value = "Value1"
rowCount = rowCount + 1
oSheet.Range("A" & rowCount).NumberFormat = "@"
oSheet.Range("A" & rowCount).Value = shell1
Else
oSheet.Range("A" & rowCount).NumberFormat = "@"
oSheet.Range("A" & rowCount).Value = shell1
End If
rowCount = rowCount + 1
rsAnaforaPr.MoveNext()
End While
oBook.Close(True)
oExcel.Quit()
それははるかに速く、それを記入します。データを格納する場所の左上のセルに配列を書き込むだけで、セルではなくすべてを一度にすべて書き込む – soohoonigan
ループ内のレコードセットからすべてを最初に読み込みます。要素を配列に記録します。それをExcelの単一の範囲にすべて書き込んでください。 – djv
この質問は[Code Review](http://stackexchange.codereview.com)IMOに適しています。 –