VBAの全てがここにある!

VBA Mid関数について ~関数の解説と使用例~

ENGINEER.CLUB編集部

ENGINEER.CLUB編集部

ある文字列の中から、一部の文字を取り出して使いたいことはありませんか。

そんな時には、Mid関数、Left関数、Right関数等を利用すると、特定の文字列を取り出すことができます。

ここでは、「文字列の途中から一部の文字を取り出したい」場合に利用する、Mid関数について説明します。


1.Mid関数について

1-1.Mid関数とは

Mid関数とは、VBAの文字列操作の1つです。

Mid関数は、文字列の指定した位置から、指定した数の文字列を取り出して返します。固定長のファイルなどで、取り出したい文字列の開始位置や文字数が決まっているときには便利です。

1-2.Mid関数の構文

Mid(文字列, 開始位置)

Mid(文字列, 開始位置, 文字数)

文字数は省略可能です。省略した場合、開始位置以降のすべての文字を返します。開始文字を1としてカウントします。


2.Mid関数の使用例

2-1.基本的な使用例

Mid("あいうえabc",3)

実行結果: うえabc

解説:「あいうえabc」の3文字目以降のすべての文字を返します。

Mid("あいうえabc",3, 2)

実行結果: うえ

解説:「あいうえabc」の3文字目から2文字を返します。

Mid関数では、全角・半角の区別をつけずに、1文字としてカウントします。

2-2.特殊な書き方をした場合の実行結果

文字数に、実際の文字列よりも大きい値を入力した場合、開始位置より末尾までを返します。

Mid("あいうえabc",3, 10)

実行結果: うえabc

解説:「あいうえabc」は10文字以下であるため、3文字目以降のすべて文字を返します。

    これは、2-1.のMid(“あいうえabc”,3, 2) と同様の実行結果になります。

開始位置に、実際の文字列よりも大きい値を入力した場合、空文字を返します。

Mid("あいうえabc",10, 2)

実行結果: (空文字)

解説:「あいうえabc」は10文字以下であるため、開始位置以降に文字が存在せず、“”を返します。

2-3.その他使用例

あらかじめ文字数が決まっている文字列に関しては、以下のような変換が可能です。

  • 日付の型変換(yyyy/mm/dd yyyymmdd
2018/11/04→Mid("2018/11/04",1,4) & Mid("2018/11/04",6,2) & Mid("2018/11/04",9,2)
  • 最大100文字の文字列を50文字ずつに分ける
Mid(文字列,1,50) 
Mid(文字列,51)

2-4.ほかの関数と組み合わせた使用例

文字列の開始位置が決まっていない場合は、InStr関数で開始位置を取得します。

「あいうえabc」という文字列の、「え」から始まる3文字を抜き出したい場合、まず、「え」の文字が何文字目にあるかをカウントします。

InStr(1, "あいうえabc","え") = 4

上記の通り、「え」は4文字目に位置するので、4を返します。これをMid関数と組み合わせると

Mid("あいうえabc", InStr(1, "あいうえabc","え"), 3)

Mid("あいうえabc", 4, 3)

と同じ意味になるので、

実行結果: えab

となります。


3.MidB関数について

MidB関数は文字列内の指定位置から指定したバイト数分の文字列を返します。

構文はMid関数と同じです。

ただし、VBAでは全角も半角も1文字を2バイトとしてカウントするため、開始位置の指定には注意が必要です。

MidB("あいうえabc",3, 2)

実行結果: い

解説:「あいうえabc」の3バイト目(2文字目)から2バイト(1文字)を返します。

MidB("あいうえabc",2, 2)

実行結果: ?

解説:「あいうえabc」の2バイト目からはカウントできず、実行結果が?となります。


4.最後に

以上、Mid関数について、基本的な構文と使用例をまとめました。

Mid関数とMidB関数に関しては、用途を明確にした上で、使い分けてください。

私たちは、全てのエンジニアに市場価値を高め自身の望む理想のキャリアを歩んでいただきたいと考えています。もし、今あなたが転職を検討しているのであればこちらの記事をご一読ください。理想のキャリアを実現するためのヒントが見つかるはずです。

『技術力』と『人間力』を高め市場価値の高いエンジニアを目指しませんか?

私たちは「技術力」だけでなく「人間力」の向上をもって遙かに高い水準の成果を出し、関わる全ての人々に感動を与え続ける集団でありたいと考えています。

高い水準で仕事を進めていただくためにも、弊社では次のような環境を用意しています。

  • 定年までIT業界で働くためのスキル(技術力、人間力)が身につく支援
  • 「給与が上がらない」を解消する6ヶ月に1度の明確な人事評価制度
  • 平均残業時間17時間!毎週の稼動確認を徹底しているから実現できる働きやすい環境

現在、株式会社ボールドでは「キャリア採用」のエントリーを受付中です。

まずは以下のボタンより弊社の紹介をご覧いただき、あなたの望むキャリアビジョンをエントリーフォームより詳しくお聞かせください。

コメント

公式アカウントLINE限定!ボールドの内定確率が分かる無料診断実施中
公式アカウントLINE限定!
ボールドの内定確率が分かる無料診断実施中