文字コードがないハイフンのように見える"−"横棒(Excel)
- (2012-04-12 11:39:52)
乱れきったハイフン
文字コードのことはよくわからない。全角ハイフンと半角ハイフンには、文字コードが割り振られているが、文字コードが割り振られていないハイフンがあるらしい。それがAmazonマーケットプレイスで使用されている。
Excelに展開したときはハイフンらしく表現されるが、メールに取り込むと「?」と文字化けを起こす。
Accessに取り込んでも、取り込み方によるが、ハイフンらしい形状。ということはMicrosoft社製品は、おおむね受け入れてくれる文字なのかもしれない。JISベースかな?
しかし、一般には通用しない文字である。
Excel VBAで変換できない理由
そこでExcelにてこの「ハイフンらしきモノ」を、Ascii半角ハイフンなどデファクト的な文字に変換しようとすると、これができない。
たとえば、下記コードをvbaで作成し「ハイフンらしきモノ」をペーストすると「?」に自動変換される。これで置換すると全文字が「-」になる。
selectedRange.Replace "?", "-", xlPart
そこで、文字コード指定で変換を試みる。「ハイフンらしきモノ」の文字コードはChr(63)らしい。これは「?」という文字だそうだ。
Chr(45)は半角ハイフンの意味。
下記のようなコードをVBAに入れてみた → 何も起こらなかった。
selectedRange.Replace "~" & Chr(63), Chr(45), xlPart
この「ハイフンらしきモノ」には、文字コードが割り当てておらず、vbaなどのプログラムでは変換できないということらしい。
「ハイフンらしきモノ」をvbaにペーストすると自動的に「?」になることは上に書いたが、これはAsciiコードの「?」ではなく、文字コードが「わからない」という意味らしい。
日本語の文字コードは細部ではグチャグチャみたい。本当に文字コード問題には近寄りたくない。
苦肉の対応策
vbaに落とすことができないので、毎回「ハイフンらしきモノ」をハイフンに置換する作業を手作業で行うことにした。
(1)あらかじめ記入されている「ハイフンらしきモノ」のセルのコピー(Crtl+C)
(2)Ctrl+H(置換)
(3)置換パネルで、置換するモノに「ハイフンらしきモノ」をペースト(Ctrl+V)、置換文字に半角ハイフンを入れて置換していく
数回のキー操作と1分程度の作業 → ムダ。しかし、現状これしかない。多くの人がこの作業をやるしかないとしたら、国益にさえ損ないかねない状況だ。
今はこの手作業自体を、VBAで自動化している。動作するが、本当に美しくない。
<< HDDをDtoD領域も含めて丸ごとコピーするEaseUS< | >(TEST) >>