VBSでExcelにデータ貼り付け

備忘録として、、、
おそらく定番の処理だが、初めての記述だったので。

以下は、AccessVBAでADOを使ってDBからデータを取り出して、Excel
エクスポートしている。

Set cn = CurrentProject.Connection
Set rs = cn.Execute(SQL)

Set xl = CreateObject("Excel.Application")
xl.Visible = True
Set bk = xl.WorkBooks.Add
Set sh = bk.WorkSheets(1)

With sh
j = 1
Do Until rs.EOF
If j = 1 Then
For i = 0 To rs.Fields.Count - 1
.Cells(j, i + 1) = rs.Fields(i).Name
Next
j = j + 1
End If
For i = 0 To rs.Fields.Count - 1
.Cells(j, i + 1) = rs.Fields(i).Value
Next
j = j + 1
rs.MoveNext
Loop
End With

rs.Close
Set rs = Nothing

利点
 開発の中心がたとえばAccessなら、コードの記述がAccessだけで済む。
 ExcelVBAを書いたりいろいろ不要。
欠点
 ExcelVBAで直接書くより遅い。
勉強不足
 DoCmd.TransferSpreadSheetでもできるはずだが、試してない。
 shell関数で、Excelを立ち上げて同じことできないか??。知識なし。