和風スパゲティのレシピ

日本語でコーディングするExcelVBA

文字列の左側(先頭)をn文字削除する

文字列の左側をn文字削除するコードを解説します。

基本の書き方

左から2文字消した文字列 = Mid(元の文字列, 2 + 1)

実行サンプル

商品名 = "愛媛みかん"
種類 = Mid(商品名, 3)
MsgBox 種類 ' ← 「みかん」が表示されます。

解説

左から2文字消す = 左3文字目から右側を取ってくる

です。


Mid関数を使うと、「○文字目から△文字」を取ってくることができますが、
この△を省略した場合は、右側を全部取ってきます。

その仕様を利用しているわけですね。

ワークシートの数式では

シートの数式でこの処理を行う場合は、

B1 =MID(A1,3,1000)

で、A1セルの左から2文字削除したテキストを取得できます。


VBAと違い、シート関数のMIDは第3引数が省略できないことにご注意ください。

100でも1000でもLEN(A1)でも、なんでもいいので入れておきましょう。

おまけ:文字列処理は関数化しておくと便利

文字列処理を多くやる人は、↓のように汎用関数を作ってみましょう。

' 汎用関数
Function 左からn文字削除(ByVal 元テキスト As String, n As Long) As String
    左からn文字削除 = Mid(元テキスト, n + 1)
End Function

' 使用例
MsgBox 左からn文字削除("愛媛みかん",2) ' ←みかんが表示されます。

今回の処理は文字列操作の中で1、2を争う簡単コードですが、
それでも結構読みやすくなっていますよね?


「右側を取ってくるのにMidを使う」ことや、
「削除したい文字数+1を引数に渡す」ことなど、
イディオム的なことを暗記しなくてよくなるのもうれしいです。

コピペでも動きますので、持って行って使ってみてください。


関数と聞くと難しく感じるかもしれませんが、コードを見ればわかる通り、
中身は上で紹介したコードそのままです。

文字列操作は関数化が楽ちんで、その割に関数化の効果が大きいので、
関数づくりの練習にぴったりだと思います。


Functionプロシージャ勉強してみたいけど難しそうだな~って思っている方は、
ちょうどいいのでこの機会に始めて見るといいかもしれません。



今回の「右からn文字削除」や、
他には「文字から文字までを取ってくる(例えばカッコの中身)」など、
私が作成した文字列操作の汎用関数集が下記のページにあります。

関数作成の参考にするなり、中身を見ないでコピーして使うなり、
ご自由にお持ち帰りください。

www.limecode.jp