こんにちわ。
Excelでマクロを書いています。
テキストファイルから、最初の5行を読み飛ばし
そのあと4行ごと取得し、必要な部分を出力し
1行目に特定の文字がでてきたらループを終了するというものを書きたいです。
VBA
1Sub Run() 2 Dim OpenFileName As String 3 'ファイルを開くダイアログ 4 ChDir ThisWorkbook.Path & "\" 5 OpenFileName = Application.GetOpenFilename("テキストファイル,*.txt") 6 7 If OpenFileName <> "False" Then 8 Open OpenFileName For Input As #1 9 End If 10 11 Dim buf As String 12 '5行読み飛ばし 13 Line Input #1, buf 14 Line Input #1, buf 15 Line Input #1, buf 16 Line Input #1, buf 17 Line Input #1, buf 18 19 Do While InStr(line1, "おわり") > 0 20 21 Dim line1 As String 22 Dim line2 As String 23 Dim line3 As String 24 Dim line4 As String 25 26 '4行読み込み 27 Line Input #1, line1 28 Line Input #1, line2 29 Line Input #1, line3 30 Line Input #1, line4 31 32 Close #1 33 34-処理(省略)- 35 36 Debug.Print , a + b + c + d ; 37 38 Loop 39 40 Close 41 42 End Sub 43
1行目に おわり という文字がきたらループを抜けたいです。
今これを実行すると、
コンパイルエラー
同じ適用範囲内で宣言が重複しています。
というエラーが Do While InStr(line1, "おわり") > 0
の部分ででてきます。
line1は1度しか宣言していません。
省略している処理の中ではline1に関しては何も記述はありません。
なぜこのようなエラーがでてきるのでしょうか?
解決方法があれば、アドバイスいただけますと嬉しいです。
よろしくお願いいたします。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/08/16 05:07