エクセルマクロなブログ

エクセル マクロ(Excel VBA)の作成・制作に携わっています。

◆お問い合わせはこちら◆

スポンサーサイト

一定期間更新がないため広告を表示しています

- | - | -
<< imageBBSバージョンアップ | Access2007使いにくい…… >>

はまりました……

今、やってるお仕事で他のブックから情報を取り込む部分が
あるんですけど、そこでちょっとはまりました。

そのブックを開いてみると「ほげ ほ げげ」という感じで
一つ全角スペースがあって、その後いらないと思うんですが
なぜか半角スペースがあるデータセルの情報を取り込むと
「ほげ ほ?げげ」と半角スペースが?に化けるんですよ。

なんじゃこりゃってな感じで不具合修正にかかったんですが
これがなかなかはまりました。

一文字一文字フォントを見ていくと、問題の半角スペースの
フォントが(他はMSゴシックなのに)Hiragino Kaku Gothic Pro
とかいうあまり聞かないフォントなんですね。

元データはブラウザからコピペしたもののようなので
そのページで指定していたフォントなんでしょう、たぶん。

macのフォンとかなぁと思って調べてみたんですが、有料フォント
であることは分かりましたが、それ以上はなんか分からず。

件のブック上で問題のセルをコピペする分には文字化けは
起こらないんですが、そのセルをコピーしてテキストエディタに
コピペすると半角スペースが?に文字化け。

VBのコードで処理中の内容をデバックプリントしてみると
やはり?に文字化けしてます。

じゃあ?をコード上でどうにかしてやればいいかと

If Mid(str,i,1)="?" then
hoge
End If

とかしてやるんですがhogeの処理が走りません。

悩みまくってGoogleで「文字化け スペース」
「Hiragino Kaku Gothic Pro 文字化け」
「制御文字 文字化け」
とかしていて、とりあえずサイトで使われそうな
CRLFとかTABとかが謎の半角スペースの正体
じゃないかとやってみましたが、すべてダメ。

「制御文字 VB」でググった結果最初に出てきた
「文字のASCII(アスキー)コードを得るには?[C#、VB] − @IT」
を見て、問題の半角スペースのアスキーコードを取得してみて
それを決め打ちで判定かけたらhogeの処理が走るように
なりました。

で、アスキーコードは63だったんですが、63というのは
「?」のことなんですね。
じゃあなんでさっきの判定がアウトなんだよぉ……って
感じですが、とりあえず不具合は直ったので良しとしましょうか。

今日はあと自分の別サイト用に指定時刻にサイトの中身が
更新されるCGIを作ったりしていました。
こっちの方はそれほどはまらなかったんですけど……。

ぜひ一度お問い合わせ下さいませ。


JUGEMテーマ:コンピュータ


エクセルマクロ(ExcelVBA) | - | trackbacks(0)

スポンサーサイト

- | - | -

TRACKBACKS

Trackback url: