|
データ内に、記号"|"が含まれるCSVファイルをVBAでExcelファイルへ読み込むと、
"|"以降のデータが勝手に削除されてしまいます。
削除されずに、ありのままのデータを読み込む方法はございますでしょうか?
具体的には、以下のような現象です。
●CSVデータ
1,3,8,0,1|5,9
↓VBAで読み込み↓
●Excelファイル
1,3,8,0,1,9
※5番目のデータの"|5"が消えてしまう。
とても困っています。
どうぞよろしくお願いいたします。
※念のため、ソースも掲載させて頂きます↓
Sub READ_TextFile()
Const cnsTITLE = "テキストファイル読み込み処理"
Const cnsFILTER = "全てのファイル (*.*),*.*"
Dim xlAPP As Application ' Applicationオブジェクト
Dim intFF As Integer ' FreeFile値
Dim strFILENAME As String ' OPENするファイル名(フルパス)
Dim X(1 To 43) As Variant ' 読み込んだレコード内容
Dim GYO As Long ' 収容するセルの行
Dim RETSU As Integer ' 収容するセルの列
Dim lngREC As Long ' レコード件数カウンタ
' Applicationオブジェクト取得
Set xlAPP = Application
' 「ファイルを開く」のフォームでファイル名の指定を受ける
xlAPP.StatusBar = "読み込むファイル名を指定して下さい。"
strFILENAME = xlAPP.GetOpenFilename(FileFilter:=cnsFILTER, _
Title:=cnsTITLE)
' キャンセルされた場合は以降の処理は行なわない
If StrConv(strFILENAME, vbUpperCase) = "FALSE" Then Exit Sub
' FreeFile値の取得(以降この値で入出力する)
intFF = FreeFile
' 指定ファイルをOPEN(入力モード)
Open strFILENAME For Input As #intFF
GYO = 1
' ファイルのEOF(End of File)まで繰り返す
Do Until EOF(intFF)
' レコード件数カウンタの加算
lngREC = lngREC + 1
xlAPP.StatusBar = "読み込み中です....(" & lngREC & "レコード目)"
' レコードを読み込む(番号〜設問40までの全データ)
For RETSU = 1 To 43
Input #intFF, X(RETSU)
Next RETSU
' 行を加算しA〜AQ列にレコード内容を表示(先頭は2行目)
GYO = GYO + 1
Range(Cells(GYO, 1), Cells(GYO, 43)).Value = X ' 配列渡し
Loop
' 指定ファイルをCLOSE
Close #intFF
xlAPP.StatusBar = False
' 終了の表示
MsgBox "ファイル読み込みが完了しました。" & vbCr & _
"レコード件数=" & lngREC & "件", vbInformation, cnsTITLE
End Sub
|
|