文字列の最後の1文字を削除する方法を紹介します。応用編として最後のN文字を削除する方法も紹介します。
LeftとLenで解決する
Left関数は文字列(str)と数字(N)を引数として、strの左からN文字を返却する関数です。Len関数は文字列(str)の文字数を返却する関数となります。LeftとLenを組み合わせて、文字列長-1をLeft関数へ渡すことにより最後の1文字を削除することを実現しています。
サンプルプログラムを確認する(コピペOK)
Option Explicit
Sub sample()
Dim str As String
str = "ABCDEFG"
Debug.Print str ' ABCDEFG
' 最後の1文字を削除
Dim str1 As String
str1 = Left(str, Len(str) - 1)
Debug.Print str1 ' ABCDEF
' 最後の2文字を削除
Dim str2 As String
str2 = Left(str, Len(str) - 2)
Debug.Print str2 ' ABCDE
End Sub
最後のN文字を削除するために関数化しました。
Option Explicit
' 最後のn文字を削除する関数
Function lastDel(str As String, n As Long) As String
lastDel = Left(str, Len(str) - n)
End Function
Sub sample()
Dim str As String
str = "ABCDEFG"
Debug.Print str ' ABCDEFG
' 最後の1文字を削除
Dim str1 As String
str1 = lastDel(str, 1)
Debug.Print str1 ' ABCDEF
' 最後の2文字を削除
Dim str2 As String
str2 = lastDel(str, 2)
Debug.Print str2 ' ABCDE
End Sub