VB6.0用掲示板の過去のログ(No.1)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [過去ログ] [管理用]

投稿日: 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


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- Web Forum -