投稿日 | : 2002/11/07(Thu) 21:27 |
投稿者 | : 魔界の仮面弁士 |
Eメール | : |
URL | : |
タイトル | : Re: VB6.0からEXCEL97へのデータ入力でのエラーについて |
> xl.worksheets(l).Cells(j, i).Value = strData
Cellsの繰り返しは、ハングアップの元だったりします。
http://support.microsoft.com/default.aspx?scid=kb;ja;JP414107
> 上記環境にて、別のプログラムで作成した複数CSVファイルを
> 一つのブックの複数シートに入力しようと考えています。
ADOと、Jet用OLE DB Provider 4.0を使って作成する方法もあります。
(この方法だとは、Excelがインストールされていない環境でも作成できます)
Option Explicit
Private Sub Form_Load()
Dim strWorkName As String
Dim strCSVFolder As String
Dim strCSVName As String
Dim strExcelFileFullPath As String
Dim Cn As ADODB.Connection
Dim SQL As String
strCSVFolder = "C:\USER\"
strWorkName = "~tmpVB.dat"
strExcelFileFullPath = "C:\USER\Excel.xls"
If Dir(strExcelFileFullPath) <> "" Then
Kill strExcelFileFullPath
End If
With CreateObject("ADOX.Catalog")
.Create "Provider=Microsoft.Jet.OLEDB.4.0;" _
& "Data Source=" & strCSVFolder & strWorkName
End With
Set Cn = New ADODB.Connection
Cn.Provider = "Microsoft.Jet.OLEDB.4.0"
Cn.Open strCSVFolder & strWorkName
strCSVName = Dir(strCSVFolder & "*.csv")
Do Until strCSVName = ""
SQL = "SELECT * INTO ["
SQL = SQL & "Excel 8.0;Database=" & strExcelFileFullPath
SQL = SQL & "].["
SQL = SQL & Replace(strCSVName, ".", "_")
SQL = SQL & "] FROM ["
SQL = SQL & "text;HDR=NO;FMT=Delmited;Database=" & strCSVFolder
SQL = SQL & "].[" & strCSVName & "]"
Cn.Execute SQL
strCSVName = Dir()
Loop
Cn.Close
Set Cn = Nothing
End Sub