私はこの機能を持っています:
Private Sub CheckParams(Values)
Dim Str, Ch
If IsArray(Values) then
Str = Join(Values, "")
Else
Str = Values
End If
For I = 1 To Len(Str)
Ch = Asc(Mid(Str, I, 1))
If Not ((Ch = 9) Or (Ch = 10) Or (Ch = 13) Or ((Ch > 31) And (Ch < 128))) Then
SetError("script result contains illegal characters.")
End If
Next
End Sub
この関数は、For ループの If ステートメントに従って、リストにない文字が入力値に含まれている場合にエラーをスローします。問題は、入力値に日本語の文字が含まれている場合、検証がエラーなしで渡されることです。文字の ANSI コードを返すために使用する Asc() 関数は、日本語の文字を処理する方法を知らないと思います。
ここで何が問題になっているようですか?
Asc() 関数は負の数を返しますか?