連休明けの最初の VBA 記事ですよー♪
今回は 指定した文字の左右を取り出すマクロ を作ります♪
たとえばあるセルに次のような住所データが入っているとします。
このとき「大阪府大阪市」はいらないから、「市」という文字の右側を全部抜き出したいなあと思う場面もけっこうあると思います。そんなときに使えるユーザー定義関数 (Function Macro) を用意しましたよ。
指定した文字の右側を取り出すマクロ
RIGHTST 関数は引数で指定した文字列の右側を抜き出します。
Dim a As Integer, b As Integer, c As Integer
If InStr(mystr, mykey) <> 0 Then
a = InStr(mystr, mykey)
b = Len(mystr)
c = Len(mykey)
RIGHTST = Mid(mystr, a + c, b)
Else
RIGHTST = CVErr(xlErrNA)
End If
End Function
RIGHTST 関数は
という使い方をします。たとえばセル A1 に対象文字列である
という住所が入っている場合、別のセルに
と入力すると
という文字列が返ってきます。対象文字列の中に区切り位置として指定した文字が含まれていなければ #N/A! のエラーを返します。
指定した文字の左側を取り出すマクロ
LEFTST 関数は引数で指定した文字列を含めて左側を抜き出します。
Dim a As Integer, b As Integer, c As Integer
If InStr(mystr, mykey) <> 0 Then
a = InStr(mystr, mykey)
b = Len(mykey)
LEFTST = Left(mystr, a + b - 1)
Else
LEFTST = CVErr(xlErrNA)
End If
End Function
LEFTST 関数を使うときは
と記述します。たとえばセル A1 に
というデータが入っている場合、別のセルに
と入力すると「市」という文字を含めて
という文字列を返してきます。RIGHTST 関数と LEFTST 関数は指定文字を含むか、含まないかという点で微妙に使い方がちがっているから注意してくださいねー。