- ベストアンサー
ACCESSからEXCELに出力する際、時間がかかる。
よろしくお願いします。 ACCESS VBA を使用して、既存のEXCELファイルにデータを出力しているのですが、すごく時間がかかってしまいます。件数が少ない時はそれほど気にならないのですが。時間短縮する方法を教えてください。 Sub S_ExportExcel_ADO() Dim CN As ADODB.Connection Dim rst As ADODB.Recordset Dim objExcel As Excel.Application Dim i As Integer Dim W_SQL As String On Error GoTo Err_S_ExportExcel_ADO Set objExcel = New Excel.Application objExcel.Workbooks.Open ("test.xls") objExcel.Worksheets("sheet1").Select Set CN = CurrentProject.Connection Set rst = New ADODB.Recordset W_SQL = "SELECT * FROM データ" rst.Open W_SQL, CN, adOpenKeyset, adLockReadOnly i = 1 Do Until rst.EOF objExcel.Cells(i, 4) = Trim("" & rst![データ1]) objExcel.Cells(i, 5) = Trim("" & rst![データ2]) objExcel.Cells(i, 6) = Trim("" & rst![データ3]) objExcel.Cells(i, 7) = Trim("" & rst![データ4]) objExcel.Cells(i, 9) = Trim("" & rst![データ5]) '***省略*** objExcel.Cells(i, 35) = Trim("" & rst![データ15]) objExcel.Cells(i, 36) = Trim("" & rst![データ16]) i = i + 1 rst.MoveNext Loop 'EXCEL保存 objExcel.ActiveWorkbook.Close objExcel.Quit rst.Close CN.Close Set rst = Nothing Set CN = Nothing Set objExcel = Nothing End Sub
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
履歴です。 #1のtodo36さんの発言 http://okweb.jp/kotaeru.php3?q=475151
その他の回答 (1)
- osamuy
- ベストアンサー率42% (1231/2878)
Accessのマクロでワークシート変換(Excel形式でのエクスポート)を行うか、Excelの外部データの取り込み>データベースクエリで、Excelファイルにデータをとりこんでみては。 ビルトイン機能なので、VBAよりは処理速度が速いので。
お礼
回答ありがとうございます。追加質問で申し訳ないのですが、既存のシートにデータを置きたいのですが、できるのでしょうか?
お礼
お回答ありがとうございます。配列を使って貼り付けることにしました。とても処理が早くなりました。ありがとうございます。