こんにちわ
VBAをかいています
テキストファイルから1行ずつデータを読み込み、特定の文字を見つけたらそこから2行データを抽出し、また次の行へと進んでいくマクロをかいています
このとき、特定の文字をみつけた次の次の行が空(ない)の時にエラー画面をだしたいのですが、どうかけばいいのかわかりません
以下がループ部分のコードです
VBA
1Do Until EOF(txtnum) 2 '2行目よみこみ 3 Line Input #txtnum, line1 4 If InStr(line1, "東京") > 0 Then 5 tokyoFlg = "1" 6 Else 7 8 If tokyoFlg = "1" Then 9 10 '2行目が空 11 If line1 = "" Then 12 MsgBox "不正なデータが含まれているため処理を終了します" 13 End 14 End If 15 3行目読み込み 16 Line Input #txtnum, line2 17 18 '2行目日付を取得 19 data = getdata(line1, data) 20 21 '3行目が空 22 If line2 = "" Then 23 MsgBox "不正なデータが含まれているため処理を終了します" 24 End 25 End If 26 27 '3行目場所を取得 28 citydata = getcitidata(line2, citydata) 29 30 Print #filenum, data,citydata 31 '初期化 32 data = "" 33 citydata = "" 34 tokyoFlg = "" 35End If 36g = g + 1 37End If 38Loop
テキストファイルのイメージとしては、
東京
2018/08/29 はれ
大田区
東京
2018/08/30
世田谷区 くもり
…
こんな形で東京という行から2行分から必要な部分を抽出し出力させたいです
現在きちんと東京から2行分のデータがあればエラーもなく正常処理として終わるのですが、
たとえば、
東京
2018/08/29 くもり
大田区
東京
2018/08/29 はれ
こんな形で2行分きちんとデータがないときにエラーをだして処理を終了させたいです
データがないと
3行目読み込み
Line Input #txtnum, line2
の部分でエラーが出ます
もちろん次の行が読み込めないのでエラーになるのはわかるのですが、東京から次の一行目(日付、天気の行)は存在し、その次がない場合のエラー処理方法がよくわかりません
よろしくお願いいたします。
追記
皆様回答ありがとうございました
一番シンプルに解決したものをBAにさせていただきました

回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。