ツールの仕様
VBAを使用してWEB画面から文字列を取得しEXCEL上に一覧化。
更に一覧化された文字列を使用し、別のWEB画面へインプットするツール。
どうなったのか
画面で入力エラーが発生。
「-(マイナス)」の文字が、EXCEL上では表示されているが、WEB画面へインプットした際にコード誤りがあり、WEBAPで読み取れていなかった。
また、入力エラーの内容がいまいちで、何が起きているのか分からなかったのと、EXCEL上では文字化けが発生していなかったので気づかずに嵌りました。
どのような事象か
「-(マイナス)」は環境により、割当られているコードが異なります。
文字列 | IBM拡張文字 | SJIS (Shift_JIS) |
---|---|---|
-(マイナス) | &H2212 | &HFF0D |
WEBAPがIBM製品を使用しているからなのか、「-(マイナス)」がIBM拡張文字コードになっており、そのままでは、別のWEB画面へ入力できない状態になっていました。
分かってしまえば、ありがちで単純な話なのですが、
EXCEL上では普通に見えていたので、気づきませんでした。
##対応方法
vbaのソース上にIBM拡張の文字列を記載することができませんので、
ChrW関数を使用し、文字コードを指定して置換を行いました。
対象文字列 = Replace(対象文字列, ChrW(&H2212), ChrW(&HFF0D))
|ChrW(&H2212)|IBM拡張文字-(マイナス)|
|---|:---:|:---:|
|ChrW(&HFF0D)|SJIS-(マイナス)|
対応はしたものの、理解できていないのが、
なぜ、WEBから取得した文字列がEXCEL上では表示されているのか?
IBM拡張文字のコードを利用してEXCEL上で表示しようとしても
「?」になってしまい表示することができません。
どなたか教えて頂けませんでしょうか。。。