Dim Original As String ’元のファイル名を格納 Dim newFile As String ’新しいファイル名を格納 Dim ch1 As Integer ’元のファイルを開くための番号 Dim ch2 As Integer ’新しいファイルを開くための番号 Dim i As Long ’行番号を制御する添え字 Dim x As Long ’各行の要素を制御する添え字 Dim DL As Long ’データ数 Dim SL As Long ’データ開始行 Dim EL As Long ’データ終了行(基本未使用)
Dim data As String ’開いたデータを格納 Dim dataIn() As String ’開いたデータをSPLITした後格納する配列 Dim dataOut() As String ’処理後のデータを格納する配列
’ファイル名を取得 Original = Application.GetOpenFilename("csv ファイル,*.csv,asc ファイル,*.asc") If (Orignal = "" Or IsNull(Original) = True Or Original = "False") Then 'Exit Sub ’なぜかExitしてしまうのでコメントアウト End If
まず、
>Original = Application.GetOpenFilename("csv ファイル,*.csv,asc ファイル,*.asc")
>If (Orignal = "" Or IsNull(Original) = True Or Original = "False") Then
>'Exit Sub ’なぜかExitしてしまうのでコメントアウト
>End If
[上手くいかないデータ]
ThisIs fada
Date 2011/10/29
LSB 300 400 0.3
TimeRate 0.001
Time 300
Time Trq Current Angle
0 0 32768 16384
1 205 32765 16382
2 411 32757 16378
3 617 32744 16372
[上手くいくデータ]
This is my a
I love you
I play baseball very
this si a f
0 523 43342 4321
1 523 43342 4321
2 523 43342 4321
3 523 43342 4321
4 523 43342 4321
5 523 43342 4321
Sub Macro1()
Dim Original As String '元のファイル名を格納
Dim newFile As String '新しいファイル名を格納
Dim ch1 As Integer '元のファイルを開くための番号
Dim ch2 As Integer '新しいファイルを開くための番号
Dim i As Long '行番号を制御する添え字
Dim x As Long '各行の要素を制御する添え字
Dim DL As Long 'データ数
Dim SL As Long 'データ開始行
Dim EL As Long 'データ終了行(基本未使用)
Dim data As String '開いたデータを格納
Dim dataIn() As String '開いたデータをSPLITした後格納する配列
Dim dataOut() As String '処理後のデータを格納する配列
'ファイル名を取得
Original = Application.GetOpenFilename("csv ファイル,*.csv,asc ファイル,*.asc")
If Original = "" Or IsNull(Original) = True Or Original = "False" Then Exit Sub
'元のファイルをInputとして開く
ch1 = FreeFile
Open Original For Input As #ch1
'新しいファイルをOutputとして開く(存在しない場合自動で新しくファイルが出来る)
ch2 = FreeFile
Open newFile For Output As #ch2
i = 0
'使いたいファイルまでデータを読み捨てる
SL = 5
For i = 1 To SL
Line Input #ch1, data
Next
'データを読んでは書き込む
Do Until EOF(1)
x = 0
Line Input #ch1, data
dataIn = Split(data, ",")
DL = UBound(dataIn)
ReDim dataOut(DL)
For x = 0 To DL
dataOut(x) = dataIn(x)
If x = DL Then
Print #ch2, dataOut(x)
Else
Write #ch2, dataOut(x);
End If
Next x
Loop