st = "暗号化する文章"
strkey = Asc("1") '鍵

'暗号化
Do While st <> "" '暗号化する文字列を入れた変数(st)が空になるまでループする
code = Asc(st)
code = code Xor strkey
stb = stb + Chr(code)
st = Mid(st, 2) '暗号化した文字を消す
Loop

'暗号化した文字列はstbに代入される

'復号化
Do While stb <> "" '今度は、暗号化した文字列を入れた変数(stb)が空になるまでループする
code = Asc(stb)
stb = Mid(stb, 2)
code = code Xor strkey
st = st + Chr(code)
Loop

'復号化した文字列はstに代入される

↑
作ってみたところ、こんな感じになりました。
鍵が「1」の時はまともに動くのですが、それ以外にすると無茶苦茶になってしまいます。
何がおかしいんでしょうか・・・