VBA_Mid関数の使い方_文字列操作の使用例

この記事を読むのに必要な時間は約 5 分です。

 

文字列を扱う、Mid関数の使い方です。

 

指定した文字列の中から、欲しいところを上手く抜き出すので、セルの値でもファイル内のデータでも、使いどころは意外と多いかもしれません。

 

構文と使用例を紹介します。

スポンサーリンク

Mid関数の構文

構文:Mid(文字列, 開始位置, [長さ])

  • 文字列 :Mid関数を使う対象の文字列
  • 開始位置:抜き出す文字列の開始位置、1文字目を1とカウント
  • [長さ]  :省略可、抜き出す文字列の開始位置からの長さ

 

文字列のところには、直接ダブルクォーテーション「””」で文字列を囲んで入れてもしいですし、String型の変数やセルなどを指定できます。

 

開始位置は1文字目を1とカウントです。
関数によっては最初を0とカウントする場合もあるので、混同するかもしれませんのでご注意を。

 

長さのところは省略可能です。
省略した場合、開始位置から右端までを指定したことになります。

Mid関数の使用例

例えば、東京タワーの住所から港区以降を抜き出してみます。
住所:東京都港区芝公園4丁目2-8

 

これをDebug.Printで実行してみると、4文字目の港区以降を取得されることが分かります。

 

Mid関数で操作したい文字列は全角だけとは限りません。
半角全角交じりなど、いろんなパターンを実行していきます。

Debug.Printで見てみる

このブログ(Website-Note)のURLから、Mid関数を使って一部分を取り出してみたいと思います。

 

実行結果はDebug.Printでイミディエイトウィンドウに表示します。

VBA_Mid関数の使い方_文字列操作の使用例

 

イミディエイトウィンドウに表示された内容が分かりづらそうなので、vbCrlfを使って間に1行分改行を入れました。

 

実行結果は下図のイミディエイトウィンドウのところに表示されています。

 

全角と半角が混じっていても、どちらも同じように1文字ずつカウントされました。

VBA_Mid関数の使い方_文字列操作の使用例

セルの値を変更してみる

Debug.Printだけだと味気ないので、セルに入っている値を操作してみたいと思います。

 

C列に入っているURLから、ドメインより後ろの部分をD列に格納します。

 

単純にコピペしてドメインのところを置換すれば一瞬で終わる話ですが、Mid関数の使用例ということでご了承ください。

VBA_Mid関数の使い方_文字列操作の使用例

 

下のMacro1()を実行します。

 

ドメインより後ろのところを取得できました。

VBA_Mid関数の使い方_文字列操作の使用例

VBAじゃなくて、シートで使うMid関数は?

Mid関数はシートで使うものもあります。

 

構文は、
MID(文字列, 開始位置, 文字数)

 

VBAのMid関数とほとんど同じです。

 

違いは3つ目の引数が省略できないこと。
文字列の最後まで取得したい場合は、文字数以上の数字が入っていれば問題ないので、1000など大きな数字を入れておきます。

 

先ほどのVBAと同じ文字列が表示されました。

VBA_Mid関数の使い方_文字列操作の使用例

スポンサーリンク

まとめ:Mid関数の使い方

VBAでのMid関数の使い方や使用例、シートで使う関数について紹介しました。

 

LEFT関数やRIGHT関数と並んで、文字列操作の際はよく使います。

 

単品で使うこともあれば、InStr関数など他の関数と組み合わせて動的に欲しい部分だけ抜き出すようなやり方もあります。
組み合わせればできることの幅が広がるので、ぜひ覚えていってくださいね。

 

最後までお読みいただき、ありがとうございました。