[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『Tab区切りのファイルをシートへ貼り付け』(SY)
いつも参考にしています。 あるデータを処理するのに以下のサンプルコードを作成して動作確認をしました。 実行結果は、各データが結合してA列に全て貼り付けられたのですが、 TABで区切られた(元のデータ)形で貼り付けるにはどこを修正すればよいのでしょう? 色々調べてみたのですが、煮詰まりました。 よろしくお願いします。 SUB TEST() Dim CN As ADODB.Connection Dim RS As ADODB.Recordset Dim FolderName As String Dim DataFile As String
FolderName = Application.GetOpenFilename("タブ区切りテキストファイル,*.txt") If FolderName <> "False" Then DataFile = Mid$(FolderName, InStrRev(FolderName, "\") + 1) FolderName = Left$(FolderName, (Len(FolderName) - Len(DataFile))) Else MsgBox "キャンセルされました" Exit Sub End If Set CN = New ADODB.Connection With CN .Provider = "Microsoft.Jet.OLEDB.4.0" .Properties("Data Source").Value = FolderName .Properties("Extended Properties").Value = "TEXT;HDR=NO;FMT=Delimited;TAB;" .Open End With Set RS = New ADODB.Recordset RS.Open Source:="SELECT * FROM [" & DataFile & "]", ActiveConnection:=CN ThisWorkbook.Worksheets("Sheet4").Range("A2").CopyFromRecordset RS RS.Close CN.Close Set RS = Nothing Set CN = Nothing End Sub
シートに開いてどうしたいのでしょうか? ふつうはタブごとにセルを分けて読み込みますけど・・? (INA)
レスありがとうございます。 LineInputを使ったものだと処理時間が掛っているので試しにと Recordsetオブジェクトを使う処理を考えています。 (LineInputでは 件数:13000件 項目数:41項目 処理時間:75秒前後) 処理内容は、ソートさせて、条件に合うデータを抽出して(Vlookupなど使って)、 最終的にシートにデータを貼り付けるといった内容です。 sortプロパティがエラーになるので、 試しにそのまま貼り付けるとタブが詰まった状態でした。 LineInputのコードも改善する余地は十分にあると思うのですが、 今回はRecordsetの使い方も覚えたいと考えています。 TAB区切りのデータではRecordset使えない気がしているのですが、 よろしくお願いします。 (SY)
Excelの「外部データの取り込み」は使えないのでしょうか?
それならFSOで対応できませんか? http://www.officetanaka.net/excel/vba/filesystemobject/textstream.htm (INA)
今回は処理速度の向上を考えシートへの貼り付けは最後にと考えています。 従って、Excelの「外部データの取り込み」も考えましたが、 今回は除外しました。 (EXCELの標準関数を使った方が概ね早いという印象はありますが...) FileSystemObjectオブジェクトは使ったことが無いので何が出来るか調べてみます。 アドバイスありがとうございます。 (SY)
> ソートさせて、条件に合うデータを抽出 これは順番が逆ではないですか? シート上でソートするのは結構速いですけど。 (INA)
そうなんですよ。 条件に合うデータを抽出してソートしたいところですが、 抽出条件が難しく、ソートされていないと必要な行が特定出来ないデータなんです。 イメージとしては、 001 10 0 A1 A2 A3 ←不要なデータ 001 20 10 B1 B2 B3 ←必要なデータ(但し、B2,B3でなくA2,A3の情報は必要) 002 10 0 C1 C2 C3 : : : : : という感じです。 元のデータのフォーマットは基幹システムで固定なので 今のところ受け側で何とかするしか手は無い状態です。 (SY)
ADOでタブ区切りテキストを利用・・ http://www.microsoft.com/JAPAN/developer/library/VBCon98/vbcongetdatafromasciifile.htm (INA)
参考になりそうです。 ありがとうございます。 (SY)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.