• ベストアンサー

文字列の最後が空白なら削除する

Sub test() Dim mystr As String mystr = "abc " If Right(mystr, 1) = " " Then Debug.Print Left(mystr, Len(mystr) - 1) End If End Sub これで、最後の1文字が空白なら削除できるのですが、 "abc "のように、最後に空白が2つある場合が対応できないのですが そういう場合でも対応できるコードはありますか?

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

  • ベストアンサー
回答No.3

そうですね。No.1 さんのおっしゃるとおり RTrim 関数を使えば、一発で終わりですね。失礼しました。ベストアンサーは辞退します。 一応、No.2 の修正版も載せておきます。 Sub test()   Dim mystr As String   Dim i As Integer   mystr = "abc"   For i = 1 To 5     mystr = mystr & " "   Next i   mystr = mystr & "★★★"   Debug.Print mystr   mystr = Replace(mystr, "★★★", "")   Debug.Print mystr   Debug.Print RTrim(mystr) End Sub

VKCYXIAIXG
質問者

お礼

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

その他の回答 (2)

回答No.2

Sub test()   Dim mystr As String   Dim i As Integer   mystr = "abc"   For i = 1 To 5     mystr = mystr & " "   Next i   mystr = mystr & "★★★"   Debug.Print mystr   mystr = Replace(mystr, "★★★", "")   Debug.Print mystr   For i = 1 To Len(mystr)     If Right(mystr, 1) = " " Then       mystr = Left(mystr, Len(mystr) - 1)     End If   Next i   Debug.Print mystr End Sub

VKCYXIAIXG
質問者

お礼

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

  • kmetu
  • ベストアンサー率41% (562/1346)
回答No.1

RTrim(myStr)を使用します Sub test() Dim mystr As String mystr = "abc    " Debug.Print RTrim(mystr) End Sub 他にも LTrim(String)  先頭のスペース削除 Trim(String)   先頭と末尾のスペース削除 があります 参照: http://www.moug.net/tech/exvba/0140031.html

VKCYXIAIXG
質問者

お礼

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