流星群さんへ。
高速漢字判定のサンプルを紹介します。
漢字判定テーブル(_ascTable)の部分を増やすことで
大文字、小文字、数字などを一発で判定してくれます。
// 漢字判定のマクロ関数
#define ctype iskanji1(%1)		(_ascTable(%1) & CTYPE_KANJI1)
#define ctype iskanji2(%1)		(_ascTable(%1) & CTYPE_KANJI2)
// 漢字判定の記号定数
#const CTYPE_KANJI1		(%0001)			;漢字文字の第1バイト目(0x81-0x9F,0xE0-0xFC)
#const CTYPE_KANJI2		(%0010)			;漢字文字の第2バイト目(0x40-0x7E,0x80-0xFC)
// メイン部
*Init
	dim _ascTable,256
	repeat (0x9F-0x81+1),0x81 : _ascTable(cnt)|=CTYPE_KANJI1 : loop		;0x81-0x9F
	repeat (0xFC-0xE0+1),0xE0 : _ascTable(cnt)|=CTYPE_KANJI1 : loop		;0xE0-0xFC
	repeat (0x7E-0x40+1),0x40 : _ascTable(cnt)|=CTYPE_KANJI2 : loop		;0x40-0x7E
	repeat (0xFC-0x80+1),0x80 : _ascTable(cnt)|=CTYPE_KANJI2 : loop		;0x80-0xFC
*Main
	msg="アaイiウuエeオoアイウエオ"
	mes strf("変換前=[%s]",msg)
	RemoveKanjiCode msg,msg
	mes strf("変換後=[%s]",msg)
stop
// 漢字文字の取り除き処理
#deffunc RemoveKanjiCode var _buff_,str _string_
	sdim _buff_,strlen(_string_)+1
	sdim s : s=_string_
	dim  n
	dim  c
	
	repeat strlen(s)
		c=peek(s,cnt)
		
		if ( iskanji1(c) ){
			continue (cnt+2)
		}
		poke _buff_,n,c
		n++
	loop
return n	;長さを返す
ワザとモジュールにしてませんので、色々と遊んでみて下さい。