文字列の左側を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文字削除」や、
他には「文字から文字までを取ってくる(例えばカッコの中身)」など、
私が作成した文字列操作の汎用関数集が下記のページにあります。
関数作成の参考にするなり、中身を見ないでコピーして使うなり、
ご自由にお持ち帰りください。