VBA改行「・・」が置換できない?

このQ&Aのポイント
  • シートの文字を取得して、削除したい文字を置換で消そうと思うのですが、変数に格納した値にマウスカーソルを充てると、「・・」と表示され、置換できません。改行が返ります。
  • VBAで文字の置換を行いたい場合、特定の文字列を別の文字列に置換することができます。しかし、一部の文字、「・・」については正常に置換することができない場合があります。
  • 置換を試みた文字列の文字コードを確認することで、問題の文字コードがわかる場合があります。9の文字コードが返る場合、特定の置換方法を試すことができます。
回答を見る
  • ベストアンサー

vba 改行 「・・」が置換できない

シートの文字を取得して、削除したい文字を置換で消そうと思うのですが、 変数に格納した値にマウスカーソルを充てると、「・・」と表示され、置換できません。 ?mystr とすると、 改行が返ります。 mystr = Replace(mystr, Chr(10), "") mystr = Replace(mystr, Chr(13), "") mystr = Replace(mystr, vbCr, "") mystr = Replace(mystr, vbCrLf, "") mystr = Replace(mystr, Chr(10) & Chr(13), "") mystr = Replace(mystr, Chr(10) + Chr(13), "") で置換を試みましたが、全部だめです。 Debug.Print Asc(mystr) とすると、9が返ります。 この文字はどうやったら置換で消せるのでしょうか?

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.2

>Debug.Print Asc(mystr) >とすると、9が返ります。 ということならそれが事実なのですから,素直にchr(9)をreplaceします mystr = replace(mystr, chr(9), "")

wmjzwdwipyo
質問者

お礼

回答頂きありがとうございました。

その他の回答 (1)

  • m3_maki
  • ベストアンサー率64% (295/459)
回答No.1

> Debug.Print Asc(mystr) > とすると、9が返ります。 ということなら  mystr = Replace(mystr, Chr(9), "") でしょう。

wmjzwdwipyo
質問者

お礼

回答頂きありがとうございました。

関連するQ&A

  • EXCEL VBAにて、WORDへ置換

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

  • MSXML2 実行時エラー14 Replace

    MSXML2でソースを抜き出して改行を置換しようとすると Set objIE = CreateObject("MSXML2.XMLHTTP") objIE.Open "GET", "http://" objIE.send myStr = objIE.responseText myStr = Replace(myStr, Chr(10), "") 実行時エラー14 文字列領域が不足しています。 と出る時があります。 これは変数に格納した文字が多すぎるのでしょうか? でも変数に格納できてるけど、置換ができないって事があるのでしょうか?

  • Chr(13)とChr(10)の違いは?

    myStr = Replace(myStr, Chr(13), "") や myStr = Replace(myStr, Chr(10), "") で、改行を置換しているのですが、どちらかでも改行できる時や どちらかじゃないと改行できない時があります。 そもそもChr(13)とChr(10)の違いはなんでしょう? どちらも改行ですよね? 何が違うのでしょう?

  • 実行時エラー 14 文字列領域が不足しています。

    一度変数に格納した値を置換しようとしたら、 実行時エラー 14 文字列領域が不足しています。 となりました。 変数は、String型で宣言しています。 myStr = rs("回答文") myStr = Replace(myStr, Chr(10), "") のように、一度myStrに格納した変数の格納を取ろうと思い、 Replaceで置換しようとすると、エラーが発生します。 myStr = rs("回答文") で myStrに格納できた時点で、容量は足りているはずだし、 Replace(myStr, Chr(10), "")で置換することによって、更に容量を減らしているのに なぜエラーになるのでしょうか? アクセスvbaです。

  • VBA 複数の文字のコードを一気に返すには

    Sub test1() Dim myStr As String myStr = "abc" Debug.Print Asc("a") Debug.Print Asc(myStr) End Sub このコードは、どちらも97が返るのですが、 myStrは3文字です。 3文字全ての文字コードを返すには、 Sub test2() Dim myStr As String myStr = "abc" Debug.Print Asc(Mid(myStr, 1, 1)) & Asc(Mid(myStr, 2, 1)) & Asc(Mid(myStr, 3, 1)) End Sub のようにするしかないのでしょうか?

  • VBA改行について

    Sub 改行() MsgBox "a" & vbCr & "i" MsgBox "a" & Chr(13) & "i" MsgBox "a" & vbLf & "i" MsgBox "a" & Chr(10) & "i" MsgBox "a" & vbCrLf & "i" MsgBox "a" & vbNewLine & "i" MsgBox "a" & Chr(13) + Chr(10) & "i" End Sub 上記のコードを実行すると、すべて改行できますが、 どれが正しい、一般的な改行のコードなのでしょうか? どれも正解だとは思いますが、 企業でプログラムを作る際、 どの改行のコードを使うのか知りたいです。 よろしくお願い致します。

  • Excel2000でのVBAでの改行の置換方法

    Excel2000でVBAを利用しています。 Dim buf As string buf = "あいうえお" buf = Replace(buf, Chr(10), Chr(13) & Chr(10)) Excel2007では上記のプログラムで「あいうえお」の間に入っている、 改行コード\nを\r\nに置換することができたのですが、 Excel2000では上記のコマンドで置換ができませんでした。 なんでも良いので、何か助言頂けると嬉しいです。 答えでもなくても良いのでなんでも思いついた事をお願い致します。

  • ひらがなとカタカナを区別して置換するには?VBA

    カタカナの「ア」があるのなら置換したいので Sub test() Debug.Print Replace("ア111", "ア", "") End Sub としたのですが、これで問題なく置換されるのですが どうやらひらがなの「あ」も上記のコードで置換されるようです。 Debug.Print Replace("あ111", "ア", "") だと、返り値が「111」でした。 ひらがなとカタカナを区別するには小津すればいいでしょうか? Replace("あ111", "ア", "")の返り値は「あ111」がいいです。

  • 改行について

    VBAでコードを作るにおいて 改行が必要な場合、 Sub 改行() MsgBox "1行目" & Chr(10) & "2行目" MsgBox "1行目" & Chr(13) & "2行目" MsgBox "1行目" & Chr(13) + Chr(10) & "2行目" MsgBox "1行目" & vbCr & "2行目" MsgBox "1行目" & vbLf & "2行目" MsgBox "1行目" & vbCrLf & "2行目" MsgBox "1行目" & vbNewLine & "2行目" End Sub どれを使うべきなのでしょうか? 理由も教えてください。

  • 二次元配列のVBA

    二次元配列のVBAの書き方がよくわからないのですが、 私が作ったサンプルプログラムのSub 二次元()において 二次元配列で表すにはどうすればいいのでしょうか? Sub 二次元()では 配列を格納する変数はtmpしか使っていませんが もう一つ配列を格納する用の変数を作ればいいのでしょうか? 数字とアルファベットは別々に取り出したいです。 ----------------------------------------------------- Sub 一次元() Dim myStr As String Dim tmp As Variant Dim i As Long For i = 1 To 5 myStr = myStr & "," & i Next myStr = Mid(myStr, 2) tmp = Split(myStr, ",") For i = LBound(tmp) To UBound(tmp) Debug.Print tmp(i) Next i End Sub Sub 二次元() Dim myStr As String Dim tmp As Variant Dim i As Long For i = 1 To 5 myStr = myStr & "," & i & "と" & Chr(64 + i) Next myStr = Mid(myStr, 2) tmp = Split(myStr, ",") For i = LBound(tmp) To UBound(tmp) Debug.Print tmp(i) Next i End Sub

専門家に質問してみよう