dポイントプレゼントキャンペーン実施中!

あるホームページに出てくる ○○から××へ などの際に使用される(から記号)が、普通に(から)と打って変換して出てくるもの(~)と微妙に違い、これを普通の~記号に置換したいのですが、できずに困っております。

いちおう質問タイトルの~記号には、私の困るほうを使ってみました。
(質問をアップすると変換されてしまうかもしれませんので、違いについて補足いたします)

●困るほうの~記号の特徴:
セルにペーストすると、普通のものより若干太く見える。
テキストエディタに貼り付けると?(半角ハテナ記号)になる。
VBAのモジュールに貼り付けても上と同じくハテナ。

●使用されている場所:
例えばヤフオクのカテゴリーを下っていき、子ども服のサイズに辿りついたところで、ページ上部あたりにカテゴリー表示されているところ。

すべてのカテゴリ > ファッション > キッズ、ベビーファッション > 子ども服(女の子用) > ボトムス > パンツ、スラックス > 150(145〜154cm


いったいなぜこんな記号が使われているのだろうか・・・とほほ。
すいませんが、どうかよろしくお願いいたします。

A 回答 (3件)

あの『~』はUniCode文字ですね。


ExcelのシートはUniCodeに対応しているので貼り付けて
IMEで再変換させると、環境依存文字unicodeと表示されます。
VBAはUniCodeには対応していないので直接は扱えません。

   A
1|〜
2| 145〜154cm
3|
VBAではRangeオブジェクトごと渡してしまえば可能です。
msgbox Replace(Range("A2"), Range("A1"), "~")
(A1、A2ともUnicodeの『〜』です)

あるいはワークシート上で関数で
=SUBSTITUTE(A2,"〜","~")
とかでは?
    • good
    • 1
この回答へのお礼

なるほど・・・ソフトの仕組みを知れば、そのような解決策も思いつくわけですね。
ありがとうございます。

Excelと、そのVBAで環境が違うとは、思ったこともなかったです。
ありがとうございました。

お礼日時:2015/07/07 20:31

こんにちは。



Unicode をJISに変換するなら、以下のような方法で可能です。
置換するのは、これだけでは足らないとは思いますが……。
どこかで話題になったNBSP(no-breaking space) も厄介ですね。これも、「?」になります。

'//
Sub U2JISConvert()
 Dim Fname As String
 Dim iFno As Integer
 Dim buf As String
 Dim bufbyt() As Byte
 Fname = "Unicode_Txt"
 iFno = FreeFile()
 Open Fname For Binary Access Read As #iFno
 bufbyt = InputB(LOF(iFno), #iFno)
 Close #iFno
 buf = MidB(bufbyt, 3)
 buf = Replace(buf, ChrW(&H301C), ChrW(&HFF5E)) '置換
 Debug.Print buf
End Sub
'///
    • good
    • 0
この回答へのお礼

こちらは応用を利かせたもの(と少なくとも私には)感じられました。
こちらを参考に、問題の解決に至るまでできました。
とても助かりました。
ありがとうございました。

お礼日時:2015/07/07 22:07

多分、添付画像のようなA1とA2の違いだと思いますが、


通常は ○○から××へ などの範囲の指定の際に使われるのは「波ダッシュ」です。
> https://ja.wikipedia.org/wiki/%E6%B3%A2%E3%83%80 …

?(半角ハテナ記号)になってしまうのはそれぞれ元の文字コードが違うからです。
全員が同じOSで入力しているわけではないので、ごちゃ混ぜになっているんですよね。
太字の~をコピペで持ってきたら環境によっては化けるので、あなたが書かれている「(から)と打って変換」に置き換えれば良いのでは?。
または全角入力でShiftキーを押しながら「へ」のキーを押せば出る~で良いと思いますけど。
「エクセルVBAで「〜」が表現できなくて困」の回答画像1
    • good
    • 0
この回答へのお礼

ありがとうございます。
他から持ってきた情報をVBAで扱う際に、この問題に当たったため、それならばと、今後は自動で書き換えることで問題回避がしたかったのです。

素早いご対応に感謝いたしております。
ありがとうございました。

お礼日時:2015/07/07 20:28

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています