【EXCEL VBA】最後の1文字を削除したい

文字列の最後の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