VBA29_文字列の一部だけ取り出すには

こんばんは! Benです。
前回完結しなかったユーザーフォームですが、コーディングをしたところ、もう一つ復習しておかなければならないことがわかりましたので、今回ノートします。
今回のテーマは文字列操作関数です

20151219a.png
例えばご覧のような文字列型の変数Mojiに"バナナの木"という値が格納されていたとします。このとき、この文字列から"バナナ"だけを取り出すにはどうすればよいでしょうか? 今回はこのような文字列に関する関数をいくつか紹介します。 

関数とは、特定の処理を行った結果を出力してくれる数式のようなものです。あらかじめ用意されているものをそのまま用いてもいいし、Functionプロシージャを作成して自分で独自の関数を作ってもいいです。

関数名 内容 記述方法
Left 文字列の左から任意の文字数を取得
右の例ではNにabが格納
Left(文字列,文字数)
例)N=Left("abcde",2)
Right 文字列の左から任意の文字数を取得
右の例ではNにdeが格納
Right(文字列,文字数)
例)N=Right("abcde",2)
Mid 文字列の任意番目から任意の文字数を取得
右の例では3番目から2文字なのでcdがNに格納
Mid(文字列,開始番目,文字数)
例)N-Mid("abcde",3,2)
Len 文字列の文字数を取得
右の例では5文字なので5がaに格納
Len(文字列)
a=Len("abcde")
LCase 文字列を全て小文字にする
右の例ではNにabcdeが格納。
LCase(文字列)
例)N=LCase("ABCde")
UCase 文字列を全て大文字にする
右の例ではNにABCDEが格納される 
UCase(文字列)
例)N=UCase("ABCde")
こちらがが主に使う文字列に関する関数です。上から紹介しますと、まずLeftは文字列の左から欲しい文字数だけを取り出す関数です。もちろん文字列は直接ダブルクォーテーション「"」で囲って指定してもいいですし、文字列を格納した変数を指定してもいいです。Rightは反対に右側から。Midは真ん中を取ります。Lenは文字列操でないのですが、文字列の長さを取得することで、その長さに応じた文字列の切り抜きとかに重宝します。LCaseは全て小文字にするもので、大文字・小文字を区別するLinuxやWEBのURLなどで混乱しないよう統一するときによく使います。ほとんどが小文字にするのでUCaseはあまり使いませんが(^^;

Sub 文字列操作()
  Dim N As String '文字列変数Nを定義
  N = "大きなバナナの木"
  MsgBox Left(N, 3) 'メッセージボックスに「大きな」と表示
  MsgBox Right(N, 2) '「の木」
  MsgBox Mid(N, 4, 3) '「バナナ」
  MsgBox Len(N) '「8」
End Sub
では実際文字列をいじってみましょう。今回の元の文字列は「大きなバナナの木」です。実はは自宅の吹き抜けリビングにバナナの木を育てるのが夢です。どうでもいいことですが(^^; さて、まずはLeft(N,3)で左さん文字抽出。これをMsgBoxで表示します。もちろん表示されるのは「大きな」です。Midで4文字目から3文字抽出すると下のように表示されます。同じようにどんどんやっていくと文字列の欲しいところが思うように切り取れるようになります。これを復習すると、オートフィルターが完結できます。それはまた次回で。
20151219b.png

この記事へのコメント


この記事へのトラックバック