外字を全角スペースに置き換えるには?

解決


みんご  2003-01-30 03:11:31  No: 76950

さっぱり、方法が分からなくて困っています。

文字列に、シフトJISの外字コード領域(F040〜F9FC)の
文字が存在した場合に、全角スペースに置き換えるような処理を
VBで行いたいのですが、その方法をご存じの方がおられたら、
教えてください。


oku  URL  2003-01-30 08:12:22  No: 76951

文字の文字コードがわかればいいんですよね?
こうすれば文字コードがわかります。

Private Sub Command1_Click()
    MsgBox Hex(Asc(Text1.Text))
End Sub

あとは外字領域に入っていれば、Replaceすれば良いだけです。


たかみちえ  URL  2003-01-30 08:56:56  No: 76952

簡単にはokuさんのでいいと思いますけど、1文字ずつとらないといけません。

  わたしには、VBでそういうことのできる方法が思い当たりません…。
たぶん、VBで長くやっている人はすぐに思いつくことだと思いますけど、
あいにく、わたしはVBから離れてかなり経っているので…。
  for  ループを使えば何とかなりそうです。
そして、上位バイトが外字かもしれないのなら、次を調べるという方法で。


oku  URL  2003-01-30 10:50:33  No: 76953

すいません説明不足でした。
たかみちえさんの言われるとおり1文字ずつとらないといけません。

まっ  こんな感じでどうでしょう。

Private Sub Command1_Click()
    Dim intIndex        As Integer

    Text2.Text = ""
    For intIndex = 1 To Len(Text1.Text)
        If "F040" <= Hex(Asc(Mid$(Text1.Text, intIndex, 1))) And _
           Hex(Asc(Mid$(Text1.Text, intIndex, 1))) <= "F9FC" _
          Then
            Text2.Text = Text2.Text & "  "
          Else
            Text2.Text = Text2.Text & Mid$(Text1.Text, intIndex, 1)
        End If
    Next intIndex
End Sub


みんご  2003-01-30 18:46:02  No: 76954

okuさん・たかみちえさん  ありがとうございました。

教えていただいた方法でやってみようと思います。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加