入力された文字が、いわゆる半角文字、ShiftJISであれば1バイトで表現できる文字かどうかを判断するロジックを組む必要があったので、過去のコードをひっくり返してみました。
某作業で作ったコードがたぶん使えそう。
方法はいろいろありますが、これは正規表現で文字の範囲を指定して、それと一致するかどうかを見るというものです。文字範囲はShiftJISの00~FF、ユニコードのff61~ff9fを半角文字として許可するというものになってます。ユニコード側の判断パターンがいるかどうか、はちょっとよくわからないのですが……。念のため入れてます(実際、ユニコードもSJISも冒頭部分のコード体系は一緒なので、たしか判断ロジックとしてはSJISの範囲チェックに引っかかってたような……)。
Dim result As Boolean = False Dim codePattern As New Regex("[\x00-\xff|\uff61-\uff9f]") If inputString <> String.Empty Then result = codePattern.IsMatch(inputString) End If
これだと制御記号もOKとなるので、入力データに制御記号が入る場合は適宜調整が必要です。