ExcelでVBAのMid関数を使う方法(3例)

  • これを共有
Hugh West

で作業しているときに使う、最も重要で広く使われている関数の一つです。 ブイビーエー は、エクセルで 中間機能 ブイビーエー これは、文字列を入力とし、その途中から指定された文字数を出力として返すものです。 本日は、このような機能を持つ 中間機能 ブイビーエー を、適切な例と図解で説明します。

これは、以下を返します。 9 文字列から "アンジェラ・キャサリン・ネヴィルズ" からスタートします。 8日 キャラクターです。 "キャサリン" .

練習用ワークブックをダウンロードする

この練習帳をダウンロードして、この記事を読みながら課題を実行してください。

VBA Mid Function.xlsm

エクセルVBAのMid関数入門

機能の目的

があります。 ミッド 関数は,入力として値を受け取り,出力として値の与えられた位置から始まる与えられた文字数を返す。

を指定することができます。 文字列、数値 を、あるいは ブーリアン .

例えば、挿入する場合 Mid("Angela Catherine Nevills",8,9)。 かえってくる "キャサリン" .

を挿入した場合 Mid(12345,2,3) , だろう 234.

そして、挿入 Mid(False,2,3)です。 だろう アルス .

構文です。

の構文 中間機能 ブイビーエー です。

=Mid(String,StartをLong,[Length]とする)

論拠となる。

論証 必須 / オプション 説明
文字列 必須 文字数が返される文字列。
スタート 必須 返される文字列の開始文字。
長さ オプション 返送される文字数。 デフォルトは1。

戻り値です。

BASE関数は、文字列の途中から指定された文字数だけ文字列を返します。

ExcelのVBAのMid関数を使った3つの例

を今回は探ってみましょう。 中間機能 ブイビーエー を、いくつかの例を挙げて詳しく説明します。

1.エクセルVBAのMid関数を使って、あるIDの途中から指定された文字数を区切る

ここでは、データセットに IDs 名称 サターングループという会社の従業員の一部で

ここでは 第4 まで 7日 の文字は、各社員の入社年度を表しています。

では、次に開発するのは ユーザー定義関数 を使用しています。 中間機能 ブイビーエー から各従業員の入社年度を抽出します。 社員ID .

を使用することができます。 ブイビーエー のコードになります。

VBAコードです。

 Function Joining_Year(ID) Joining_Year = Mid(ID, 4, 4) End Function 

という関数を作成します。 入社年月 .

出力します。

ワークシートの任意のセルで、IDを引数としてこの関数を実行します。

ここで、セルにおいて D4 は、数式を入力しました。

=入社年度(B4)

最初の従業員の入社年度が返されました。 2021 .

をドラッグできるようになりました。 フィルハンドル で、残りの従業員の入社年度を取得します。

コードの説明

  • という関数を宣言します。 入社年月 という行で、IDを入力とするものです。 関数Joining_Year(ID) .
  • を抽出します。 4 IDの位置から始まる文字 4 , 行で 結合年 = Mid(ID, 4, 4) .
  • ライン エンドファンクション は関数の終了を宣言しています。

2.ExcelのVBAのMid関数を使って、一部のメールアドレスから拡張子を抽出する

ここで、データセットに新しいカラムを追加しました。このカラムには、従業員の電子メールアドレスが含まれています。

今回は、Email Addresses の拡張子を ミッド の機能 ブイビーエー .

があります。 VBAコード になります。

VBAのコードです。

 Function Extension(Email_Address) For i = 1 To Len(Email_Address) If Mid(Email_Address, i, 1) = "@" Then Extension = Mid(Email_Address, i + 1, Len(Email_Address) - (i + 4)) End If Next i End Function 

という関数を作成します。 エクステンション .

出力します。

この関数をワークシートの任意のセルで実行し、そのセルが メールアドレス を引数にとります。

ここで、セルにおいて E4 は、数式を入力しました。

=Extension(D4)です。

最初のメールアドレスの拡張子が返されました。

その後、ドラッグして フィルハンドル を使って、すべての電子メールアドレスの拡張子を抽出します。

コードの説明

  • という関数を宣言します。 エクステンション という行で,任意の名前を入力として受け取ることができます。 関数Extension(Email_Address) .
  • で反復を開始します。 フォールループ の各文字をチェックするものです。 メールアドレス かどうかを確認するために @ 行によって、またはそうでない If Mid(Email_Address, i, 1) = "@" Then .
  • を見つけると @ から必要な拡張子を抽出します。 電子メールアドレス 線路沿い Extension = Mid(Email_Address, i + 1, Len(Email_Address) - (i + 4)) .
  • 最後に、関数の終了を宣言します。

3.あるテキストに特定のテキストが含まれているかどうかを確認する

の最も重要な使い方のひとつです。 中間機能 は、あるテキストに特定のテキストが含まれているかどうかを確認するものです。

をチェックする機能を開発しよう。 メールアドレス 語を含む 「gmail かどうか。

を使用することができます。 ブイビーエー のコードになります。

VBAのコードです。

 関数 Checking(Text1, Text2) For i = 1 To Len(Text1) If Mid(Text1, i, Len(Text2)) = Text2 Then Checking = "Yes" Exit For Else Checking = "No" End If Next i End Function 

という関数を作成します。 チェック .

出力します。

この関数を、ワークシートの任意のセルで、2つのテキストを引数として実行します。

ここで、セルにおいて E4 は、数式を入力しました。

=Checking(D4, "gmail")です。

戻ってきました。 というのは、1つ目のメールアドレスが Gメール のアドレスになります。

その後、ドラッグして フィルハンドル をクリックすると、すべてのEメールIDに対して同じことができます。

コードの説明

  • という関数を宣言します。 チェック という行で2つのテキストを引数として受け取るものである。 関数Checking(Text1,Text2) .
  • の各セグメントをチェックするforループを開始します。 テキスト1 起点 1 と等しいかどうかを確認します。 テキスト2 かどうか、行によって If Mid(Text1, i, Len(Text2)) = Text2 Then .
  • を見つけると テキスト2 を返します。 "はい" を返し、それ以外の場合は "いいえ" .
  • 最後に、この関数を直線で結ぶと エンドファンクション .

覚えておきたいこと

  • があります。 第1回 の引数は 中間機能 は常に文字列である必要はありません。 , a 番号 を、あるいは ブーリアン の値を設定します。
  • しかし、その 第2回 3位 引数は必ず 計数 .彼らはすることができます。 整数 または 分数 でなければならない。 計数 もしそうなら 分数 であれば、その 中間機能 は、最も近い値に変換されます。 整数 .

Hugh West は、業界で 10 年以上の経験を持つ、非常に経験豊富な Excel トレーナー兼アナリストです。彼は会計と財務の学士号と経営管理の修士号を取得しています。ヒューは教えることに情熱を持っており、理解しやすい独自の教育アプローチを開発しました。彼の Excel に関する専門知識は、世界中の何千人もの学生や専門家がスキルを向上させ、キャリアで優れた成果を上げるのに役立ってきました。 Hugh はブログを通じて知識を世界に共有し、個人や企業が潜在能力を最大限に発揮できるよう無料の Excel チュートリアルとオンライン トレーニングを提供しています。