>>373
>>374
「ポンド記号が書式で出てる」ということはありません.
10£はサンプルとして簡単にしただけで,実際には10£5s9d(10ポンド5シリング9ペンス)をペンスに換算するプロセスで直面した問題です.

原因は通貨記号の半角と全角の問題であることがわかりましたが解決策がわかりません.
A1の£のコードは63でした.
一方,testfunc01内の£をエクセルにコピペしてcode関数で値を取得すると8562でした.
A1の£をVBAのプロシージャ内にコピペすると?になります.

エクセルの通貨記号は£,VBAのプロシージャ内の通貨記号をコピペしたものは£で,サイズが異なるので半角と全角の違いだと思います.

通貨記号を入力する時はエクセルでもVBAプロシジャーでも”ポンド”と打ち込でで変換しますが半角一択です(googleのIMEを使用).
VBAのプロシージャ内で半角(コード番号63)が何故全角(コード番号8562)に自動的に変換されるのかわかりません.
エクセルの£をVBAのプロシジャーにコピペしても?になるので,半角の£をプロシジャー内で使う方法が見つかりません.

逆にエクセルで10£と打ち込んだ後半角の£を全角の£に置換するとうまくいきました.しかし毎回置換するのは面倒です.
結局,通貨記号の入力時に半角と全角が選択できるか,VBAで内で自動的に全角に変換されないようにできればば問題は解決するのですが.


MSIMEに切り替えると、ポンドの候補として、£(全角)と£(環境依存)がでてきました。エクセルではとちらでも選べますが、VBA内では環境依存を選んでも強制的に全角に変換されます。
VBAの環境設定の問題でしょうか?
最悪の場合は、エクセルサイドで半角を全角に置換するマクロで解決する方法がありますが、できれば入力時に半角と全角で意図したほうを入力できるという解決策がいいです。

うまい解決策はないでしょうか?