|
こんにちは。
>読み込みが(4)の"10MB追加"というところで、Excel出力時には"10"だけしか出力されません。
Inputで読み込んでVariant変数に格納すると、こうなるとは思ってもいませんでした。
エクセルのいらぬ処理って言うか、val変換してその結果を判定してもろもろしているみたいな感じですね?
勉強になりました。
簡単には文字型(String)に格納すればうまくいくようですが、数値として代入できないのでセルに書き込んだ後に数値変換させるコードを追加するのもなんだと思いまして考えてみ結果、一旦String型で受けてVariant型に入れなおす事で何とかうまくいくみたいでした。
下記コードは、テスト時のままですから使う環境に合わせて変更してください。
Sub ttAuto_Open()
Dim fname As String
Dim fno As Integer
Dim col(0 To 4) As Variant
Dim i As Integer
Dim sts As String
'ファイル名
'fname2 = ActiveWorkbook.Path & "\" & csv2
fname2 = Application.GetOpenFilename("Excelファイル (*.csv;*.txt), *.csv;*.txt")
If fname2 = "False" Then
End
End If
'CSVファイルの内容を貼り付ける(ボディ部)
fno = FreeFile
On Error GoTo file_not_found
Open fname2 For Input As #fno
On Error GoTo 0
l = 4
Do Until EOF(fno) '-----ココの処理がおかしいと思われる。
'Input #fno, col(0), col(1), col(2), col(3), col(4)
For i = 0 To 4
Input #fno, sts
col(i) = sts
Next
l = l + 1
Range(Cells(l, 2), Cells(l, 6)).Value = col
Loop
Close #fno
'オートフォーマット
Cells(4, 2).CurrentRegion.AutoFormat _
Format:=xlRangeAutoFormatLocalFormat3, _
Number:=False, _
Font:=False, _
Alignment:=False
'CSVファイルを削除する
'Kill fname2
Exit Sub
file_not_found:
MsgBox "CSVファイルが見つかりません", vbCritical + vbOKOnly, "システムエラー"
End Sub
|
|