| 
    
     |  | ▼hiro さん: こんにちは
 
 >ファイルサイズは、1つのCSVで7〜8MBです。
 >CSVから直接変数に取り込むとはどういう処理をすればいいのでしょうか(汗
 愛想の悪い回答者に当たったのかな^ ^;;
 
 いつもそうではありません。自分でやってない人にはそうですけどね。
 と、いうことで、今日は特別大サービス。久しぶりに書きました。
 
 ササッと書きましたので、ほとんど検証はしてません。そのおつもりで試してください。
 一応動作確認はしてます。・・・程度です。
 改造するなり、お好きにどうぞ。
 
 Sub t2()
 Dim lineCount As Long
 Dim sLines() As String, sPath As String
 
 
 sPath = "E:\Data\Office\Excel\order.csv" 'パスは自分の環境に合わせる事
 lineCount = GetTextFileData(sPath, sLines)
 'ここでsLines()にすべての行が格納されているから、各要素を","で、更に分割して使用する
 'split関数使用すると楽チン
 '処理
 End Sub
 '/////////////////////////////////////////////////////////////
 'textファイルを読み込み、行毎に配列変数に入れて返す
 '-------------------------------------
 '引数
 'pfPath   :ファイルのフルパス
 'pLines()  :文字列型の要素数無定義の配列変数(これに全データを入れて返す)
 '-------------------------------------
 '戻り値:成功時、0以上の行数。失敗時には-1を返す
 '/////////////////////////////////////////////////////////////
 Public Function GetTextFileData(pfPath As String, pLines() As String) As Long
 Dim lCount As Long
 Dim sBuf As String, sLines() As String
 Dim bytBuf() As Byte
 Dim fNum As Long, sCount As Long, i As Long
 
 lCount = 0
 On Error GoTo ErrHandler
 sCount = FileLen(pfPath)
 ReDim bytBuf(sCount)
 
 fNum = FreeFile()
 Open pfPath For Binary As #fNum
 Get #fNum, , bytBuf
 Close #fNum
 
 sBuf = StrConv(bytBuf, vbUnicode)
 pLines = Split(sBuf, vbCrLf)
 
 lCount = UBound(pLines)
 GetCSVFileData = lCount
 
 Exit Function
 ErrHandler:
 MsgBox Err.Number & " : " & Err.Description
 Reset
 GetCSVFileData = -1
 End Function
 
 #意味を理解してから使ってくださいね。全部Helpに載っているコマンドですから。
 15:15 編集:UPした関数がcsvでなく、textfile全部に使える事に気が付いて
 名前と説明を変更
 
 
 |  |