| まずは、ダウンロードしたファイル moto.txt から VBA-Worldの製品解説を他のファイルに書き出すプログラムを作ってみます。 |
| フォームの作成 |
次のようなフォームを作成する。

フォームの大きさや配置するコントロールの大きさは適当で良い。
なお、大きなテキスト・ボックスは完成時には不要となるが、デバッグのために配置してある。
また、後で結果を見やすくするために、このテキスト・ボックスの [ MultiLine
] プロパティを [ True ] にしておく。

|
| プログラム・コード(その1:フォーム上のテキスト・ボックスに表示する) |
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
製品解説は
"------------" という行の次から始まり、
"============" という行の前で終わっている。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
moto.txtの仕様から、上のような条件を利用して、次のようにプログラムする。
Private Sub CommandButton1_Click()
Dim FileNumber As Integer
Dim PathName As String
Dim ReadString As String
PathName = ActiveWorkbook.Path & "\moto.txt"
FileNumber = FreeFile
Open PathName For Input As FileNumber
Do While Not EOF(FileNumber)
Line Input #FileNumber, ReadString
If Left(ReadString, 5) = "-----" Then
Do While Left(ReadString, 5) <> "====="
Line Input #FileNumber, ReadString
Me.TextBox1.Value = Me.TextBox1.Value & vbCrLf & ReadString
Loop
End If
Loop
Close FileNumber
End Sub
|
|
| プログラム・コード(その2:外部ファイルに書き出す) |
Private Sub CommandButton1_Click()
Dim FileNumberMoto As Integer
Dim FileNumberNew As Integer
Dim PathNameMoto As String
Dim PathNameNew As String
Dim ReadString As String
PathNameMoto = ActiveWorkbook.Path & "\moto.txt"
FileNumberMoto = FreeFile
Open PathNameMoto For Input As FileNumberMoto
PathNameNew = ActiveWorkbook.Path & "\new.txt"
FileNumberNew = FreeFile
Open PathNameNew For Output As FileNumberNew
Do While Not EOF(FileNumberMoto)
Line Input #FileNumberMoto, ReadString
If Left(ReadString, 5) = "-----" Then
Do While Left(ReadString, 5) <> "====="
Line Input #FileNumberMoto, ReadString
Print #FileNumberNew, ReadString
Loop
End If
Loop
Close FileNumberMoto
Close FileNumberNew
End Sub
|
|
| プログラム・コード(その3) |
上記したプルログラムで出来る "new.txt"に現れる "================="を書き出さないようにするには、次のようにプログラム。
Private Sub CommandButton1_Click()
Dim FileNumberMoto As Integer
Dim FileNumberNew As Integer
Dim PathNameMoto As String
Dim PathNameNew As String
Dim ReadString As String
PathNameMoto = ActiveWorkbook.Path & "\moto.txt"
FileNumberMoto = FreeFile
Open PathNameMoto For Input As FileNumberMoto
PathNameNew = ActiveWorkbook.Path & "\new.txt"
FileNumberNew = FreeFile
Open PathNameNew For Output As FileNumberNew
Do While Not EOF(FileNumberMoto)
Line Input #FileNumberMoto, ReadString
If Left(ReadString, 5) = "-----" Then
Do
Line Input #FileNumberMoto, ReadString
If Left(ReadString, 5) = "=====" Then Exit Do
Print #FileNumberNew, ReadString
Loop
End If
Loop
Close FileNumberMoto
Close FileNumberNew
End Sub
|
|