配列にて格納したデータの出力
txtファイルで取り込んだ2行にまたがっている数値・英文字・ひらがななどを1行ずつ配列として格納した後に、数値だけのtxtファイルとそれ以外のtxtファイルを別々に作成し、保存するプログラムを組みたいのですがよく分かりません。
ちなみに、使っているOSとAPはWinXP、Excel2003です。
InputData.txtの内容
A34bFg7p0 あ 1ylut890
B45LK4L え
Number.txtの完成形
34701890
454
String.txtの完成形
AbFgp あ ylut
BLKL え
'変数の宣言
Dim myFile, myText, myList(), myList2(), str, B, C As String
Dim XX As Integer
Dim myFunc As Boolean
Dim cnt, i As Long
On Error GoTo myError
myFile = Dir("InputDama.txt")
'ファイルの読み込み
If myFile = "InputDama.txt" Then
Open myFile For Input As #1
Do While Not EOF(1)
Line Input #1, myText
If myText <> "" Then
If cnt = 0 Then
ReDim myList(cnt), myList2(cnt)
Else
ReDim Preserve myList(UBound(myList) + 1), myList2(UBound(myList2) + 1)
End If
'数字・文字列の分類
CC = Len(myText)
For XX = 1 To CC
str = Mid(myText, XX, 1)
If IsNumeric(str) = True Then '←数字かどうかはIsNumericで判断
B = B & str
Else
C = C & str
End If
Next
myList(cnt) = B
myList2(cnt) = C
cnt = cnt + 1
End If
Loop
'書き込みファイルの作成
Open "Number.txt" For Output As #2
Open "String.txt" For Output As #3
For cnt = 0 To UBound(myList)
Print #2, myList(cnt)
Next cnt
For cnt = 0 To UBound(myList2)
Print #3, myList2(cnt)
Next cnt
Close #1, #2, #3
End Sub
これだと、2行目に1行目で格納したデータが最後出てしまうので、それを取り除きたいのですが、効果的な方法が分かりませんので、宜しくお願いします。
お礼
回答に対する補足訂正します。「#3さん」が抜けていました(汗) #1さん、#2さん、#3さん、#4さん回答ありがとうございました。
補足
#1さん、#2さん、#4さん回答ありがとうございました。 1つのラベルに3行すべて全表示させることができました。 また質問で恐縮なのですが、 フォームにボタンを追加して、それをクリックするたびに同じラベルに 別のテキストファイル(myFile2.txt、myFile3.txt、myFile4.txt)の内容を 順次表示させていきたいのです。 この場合、4つのテキストファイルのOpen→Input→Closeはどのようにしたらよいのでしょうか? また、別の方法として、4つのテキストファイルを1つにまとめて、 任意の位置を読み込んでいく(ランダムアクセスファイル?)ことは可能でしょうか?