Microsoft 製品に組み込まれている Visual Basic の実装。
> 出て来たレスポンスは下記の通りです。
> 「プロシージャの呼び出し、または引数が不正です。」
> Left(tdStr, InStr(1, tdStr, removeEndTag, 1) - 1)
・その時の InStr 関数の戻り値が 0 である。
・更に 0 から 1 が引かれていることにより、
Left 関数の第 2 引数 Length に渡される値が
-1 になる。
・Length に渡す値として有効なのは 0 以上の数値(整数)である。
・つまり Length に対して -1 が渡されることにより、
件のエラーが発生している。
> InStr(1, tdStr, removeEndTag, 1)
・InStr 関数によって 0 が返されるのは、
第 2 引数 String1 に渡された文字列の中に、
第 3 引数 String2 に渡された文字列が含まれていない場合である。
・つまり、変数 tdStr に格納されている文字列の中に、
変数 removeEndTag の値と同じ文字列が含まれていない
ということになる。
> エラーを起こしている箇所は分かったものの、
> そこからの手順が分かり兼ねる為
> 解決法をご教示いただけますと大変助かります。
tagRemoveSimple, tdStr, removeEndTag などの変数に
それぞれどんな役割が与えられているのか、変数に
格納されている値にどのような意味があるのかが不明ですので、
具体的にどのようにコードを修正すべきかまでは回答致しかねます。
ただ Left 関数の第 2 引数 Length に 0 未満の数値が
渡されることを避けたいのであれば、Left 関数を呼び出す前に
InStr 関数の戻り値を取得し、その結果が 0 以上であるか否かによって
フローを分岐させればよいと思います。