• ベストアンサー

VBAで文字コードを取り出したい

セルに取り込んだ文字列にスペースが含まれ、VBAの" "で読まれません。関数で=CODE(B1)により取り込むと文字コード160です。 VBAで文字コード160で識別したいのですが、chr()などを試してエラーになります。 セル内の文字からmidで取り出したスペース(コード160)を、コード番号で識別してifを使って排除したいのですが、素人ですので、マクロがうまく作れません。 混乱していますが、よろしくお願いします。

noname#18526
noname#18526

質問者が選んだベストアンサー

  • ベストアンサー
noname#22222
noname#22222
回答No.2

CommandButton2_Click の実行結果は次のようです。 --------------------------------------------------------------- <123>、Length=3 <・123>、Length=4 --------------------------------------------------------------- MyReplace 関数で躓いた箇所が判ると思います。 Option Explicit Private Sub CommandButton1_Click()   Me.Cells(1, 1) = Chr$(160) & "123" End Sub Private Sub CommandButton2_Click()   Dim strNew As String      strNew = MyReplace(Me.Cells(1, 1))   MsgBox "<" & strNew & ">、Length=" & Len(strNew) & Chr$(13) & _       "<" & Me.Cells(1, 1) & ">、Length=" & Len(Me.Cells(1, 1)) End Sub Public Function MyReplace(ByVal strText As String) As String   Dim I   As Integer   Dim L   As Integer   Dim C   As String   Dim strNew As String      L = Len(strText)   For I = 1 To L     C = Mid$(strText, I, 1)     If C <> Chr$(160) Then       strNew = strNew + C     End If   Next I   MyReplace = strNew End Function

その他の回答 (1)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

A1のセルからコード160を取り除く例 Range("A1").Value = Replace(Range("A1").Value, Chr(160), "")

関連するQ&A

  • =code(" ") で値が160となる文字をEXCEL VBAで消したい

    EXCEL2002です。 あるセルに半角スペースを入力し、マクロで Cells.Replace Chr(&H20), "" と走らせるときれいに消えてくれます。ちなみにこの半角スペースを=code(" ")で調べると値は32となります。 同じやり方で=code(" ")で調べると160の値となる文字があります。これはスペースのようですが、半角でも全角のスペースでもないようです。 この文字をVBAの上記の方法で消したい場合にCells.Replace Chr(xxxx), "" ←xxxxの部分は何といれたらよいのでしょうか?

  • VBAの書き方

    只今VBAで、あるセルで文字を検索して、その文字があるときに、違うセルに文字を出すマクロを作っています。 例えば、エクセルのI列に記入されている文章に"VBA"という文字が入っているとき、M列に"YES"という文字を出したいです。 どのようなマクロの式を書けばこのような操作が出来るのでしょうか。 FINDやInStr関数を使えばよいのかと思いますが… どなたかお分かりのかたは、教えて頂ければと思います。 よろしくお願い致します<m(__)m>

  • VBAでコードから漢字に変換するのは

    VBAを使用していますが、コードから漢字を求める方法が見つかりません。 たとえば、3021から漢字の亜を求めたいのですが。 1バイト文字ならChr関数で求められますが、2バイト文字、つまり、漢字を求める方法が見つからないのです。 どなたか教えていただきたいのですが。

  • 指定した文字数分の文字列を抽出し、検索(VBA)

    いつもお世話になっております。 指定した文字数分の文字列を抽出し、他のシートから抽出した文字列を検索して表示するのに セルBB2に =IF(AW2="",VLOOKUP(LEFT(N2,2),商品マスタ!$M$21:$N$67,2,0)) という数式を入れています。 セルBB2のみではなくBB列でずっと同じ処理をするため、マクロで処理しようと思うのですがなにぶん未熟でいい方法がわかりません。 Mid関数を使えばいいのかな、とは考えましたが、どう書けばいいのかわからず前にすすめません・・・・ どなたかご教授いただければ幸いです。

  • EXCEL VBAにて、WORDへ置換

    EXCEL VBAにて、WORD文書への文字列置換を行っております。 文字列の置換自体はできています。 が、 置換文字列に「改行」(vbCRやvbLF)をいれて置換すると、 word側での表示が□になってしまいます。 vbCrだけでもvbLFだけでも、vbCRLFでも□と表示されてしまいました。 chr(13) & chr(10)でも□になりました。 EXCEL VBA にて WORDへ文字列置換する場合に送る、改行コード (たぶん「^p」と予測をつけているのですが)を chr関数等での 表示方法を教えてください。 EXCEL2003 WORD2003 よろしくお願いします。

  • VBA 文字に半角が含まれているか確認する方法

    VBAで文字に半角が含まれているか調べる方法を教えて頂けないでしょうか?全角が含まれているかのチェックはできたのですが。。。 下記は全角が含まれているかのチェックです。 If Asc(Mid(文字列, i, 1)) < 0 Or Asc(Mid(文字列, i, 1)) > 256 Then   処理 End If

  • 【VBA】 文字列の中から指定の文字列を取り出す

    VBAで文字列から指定の文字のn番目からn+1番目までの文字列を取り出すことは可能でしょうか? A1セルに下記の文字列があった場合、「1番目の半角スペースから2番目の半角スペースまでの文字列」を取り出したいのです。 5 53 00 8R この場合、53を取り出したいというわけです。 また、可能でしたら「最後の半角スペースから文字列の最後まで」を取り出す方法も教えていただけるとありがたいです。 この場合は8Rとなります。 InStr関数を使えばできるかもと思ったのですが、できそうなものが思い浮かびません。 どなたか教えていただけませんでしょうか。 よろしくお願いいたしますm(_ _)m

  • 文字の置換のVBA

    こんばんは。 下記の文字列の置換をマクロ(VBA)で出来ますでしょうか。 今は関数(SUBSTITUTE)を繰り返して処理しているのですが、1度で出来る方法がありましたら教えて下さい。 100 ABC-23d=3,4 → 100ABC23D3.4 (1)スペース削除 (2)小文字を大文字へ (3)"-" "=" など数字とアルファベット以外を削除 (4)","→ "." (カンマをドットへ変換) 宜しくお願いします。

  • Excel VBA   %の入ったセル

    困りました、、、 VBAを使って A×30%+15000 これが入ったセルB2と たとえば250000が入ったセルB2を掛け算したいのですが (B2の数字は固定ではなくいろいろな数字が入ります) 文字列が入っていることにより うまくいきません 今は仕方なくMid関数で数字を抜き出して使っているのですが なにかよい方法はないでしょうか よろしくお願いします<m(__)m>

  • 文字抽出

    エクセル初級者です。マクロは分かりません。 セルに ”漢字 半角スペース (ピンイン表記)” されています。 例)麻婆豆腐 (mápó dòufu) これから漢字とピンインを分けて抽出したい。 対象のセルの列には漢字は1~7文字で文字数に応じてピンインも変化します。 FIND,MID,LEFTなどの関数を調べてみましたが、所望には至りませんでした。 何かアドバイスいただければ有難く。

専門家に質問してみよう