- ベストアンサー
IFについて
VBScriptで、A以上B以下という処理条件を記述しているんですが、この以外のものが来たらIF文を出るようにしたいんですが、どのように記述すれば良いのでしょうか? マクロだと、確か"Exit ~"で抜けれたと思うんですが、どなたか教えて下さい。 先程も同じ質問を掲載していますが、言語の種類を記述していなかった為、再掲載しています。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
エラーが出たら、判らないから、すぐに 聞くのではなく、自分で調べることも覚 えましょう。 MyString = split(StrLine,vbTab) でTAB区切りにしていますよね。 入力データは、必ずTAB区切りになっていますか? なっていないのであれば、MyStringの要素は。1 になります。 つまり、MyString(1)は、参照例外になります。
その他の回答 (2)
- eri_yuri
- ベストアンサー率42% (74/174)
ソースを見てやっと分かりました。 あたしのあの回答じゃ全然役に立たないですかヾ(;´▽`A`` 回答はkokoroneさんのとおりですので、いまさらあたしがいうのもなんですね...
- eri_yuri
- ベストアンサー率42% (74/174)
質問の意図がよくわかってないんですけど、 IF A<=x AND x<=B THEN [処理] ENDIF これだけのこと? これだと、xは、A<=x<=B 以外だったらIF文に入らないよね?
補足
これだけだと、インデックスが有効範囲にありませんとメッセージが出力されるんですが、原因が分かりますでしょうか? テキストファイルを1行ずつ読み込み、比較しながら別ファイルに記述していきます。 for each f1 in fc s = f1.name StrInFolder = "c:\log" StrOutFolder = "c:\log\log" Set objFile = objFSO.OpenTextFile(StrInFolder & "\" & s) Set objWFile = objFSO.OpenTextFile(StrOutFolder & "\" & s,2,true) Do While Not objFile.AtEndOfStream StrLine = objFile.ReadLine MyString = split(StrLine,vbTab) if MyString(0) = mydate and timevalue(mystring(1)) <= timevalue("9:00:00") or mystring(0) = strmydate and timevalue(mystring(1)) >= timevalue("9:00:00") then objWFile.writeLine(StrLine) end if loop objWFile.close ' 出力ファイルを閉じる next Set objFSO = Nothing Set objFile = Nothing set objWFile = Nothing
お礼
確認した所、kokoroneさんのおっしゃる通りでした。ありがとうございます。