質問: asc(s) end sub とすると、シートのa1に「0」が表示されてしまうということです。 というのも、私はvb6.0/vb.netを持っていないのですが、ちょっとvb2.0時代のコードを使う必要が生じたので、vbaで実行してみたところ、以上のような仕様の違いに気付いたのです。 これがvbaだけの特性なのか、最近のvbはこういう仕様になってしまったのかが知りたいのです。
回答: ご存知でしょうが、129-159、224-252は2バイトコード文字(シフトjis)の第1バイトのコードですね。だから「文字」は割り当てられていないといえるでしょう。エクセルでは=char(18223)やcode("年")(=18223)などの関数表現が可能で(この例は年の文字)す。 sub test01() s = asc("年") cells(15, 5) = chr(s) end sub でcells(15, 5) に「年」が表示されます。 sub test02() msgbox asc("年") msgbox chr(-27570) end sub とりとめもないですが、もう少し良く判った方の解説がほしいですね。 エクセル2000、vb6です。