教えて!ExcelVBA!

ExcelVBAの基礎知識・書き方について説明していきます。

【ExcelVBA関数】Mid関数の使い方がわからないです。教えて!

       f:id:m_kbou:20190529154334p:plain

Mid関数は、文字列の指定文字から指定文字数分だけを抜き出す場合に使用します。Mid関係の関数には、Mid関数とMidB関数の2種類があります。それぞれについて以下で説明をします。

 

【目次】

 

構文

記述方法は、以下の通りとなります。

(1)Mid関数の記述方法

=======================================================================

Mid([文字列][抜き出す文字の先頭位置][桁数]

=======================================================================

[説明]:

[文字列]には、抜き出す対象文字を記述します。[抜き出す文字の先頭位置]には、抜き出す文字の先頭位置を桁で記述します。[桁数]には、抜き出す先頭位置から抜き出す桁を記述します。内容を纏めると、「[文字列]に記述された文字を、[抜き出す先頭位置]で指定した先頭からの桁から[桁数]で指定した桁数を抜き出します。」との意味になります。

[記述例]:

Mid("おはようございます。", 4, 2)

 

(2)MidB関数の記述方法

=======================================================================

MidB([文字列][抜き出す文字の先頭位置][バイト数]

=======================================================================

[説明]:

[文字列]には、抜き出す対象文字を記述します。[抜き出す文字の先頭位置]には、抜き出す文字の先頭位置をバイトで記述します。[バイト数]には、抜き出す先頭位置から抜き出すバイト数を記述します。内容を纏めると、「[文字列]に記述された文字を、[抜き出す先頭位置]で指定した先頭からのバイト目から[バイト数]で指定したバイト数を抜き出します。」との意味になります。

[記述例]:

MidB("おはようございます。", 5, 2)

 

使い方

使い方について、具体的に説明していきます。

Mid関数の使い方

Mid関数の使い方について説明します。

-------------------------------------------------------------------------------------------------------------

(1)基本的な使い方

基本的な使い方について説明します。

[記述例]:

※以下の記述例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方については、VBEの開き方を参考にして下さい。

-------------------------------------------------

Sub サンプル()
    MsgBox Mid("おはようございます。", 4, 2)
End Sub

-------------------------------------------------

内容は、「”おはようございます。”の文字列で、先頭から数えて4桁目から2桁の文字を抽出し、MsgBoxで表示して下さい。」との意味になります。

[実行例]:

f:id:m_kbou:20190529154645p:plain

------------------------------------------------------------------------------------------------------------- 

(2)ループ処理と組み合わせた使い方

以下画面の内容を元に、For~Next文と組み合わせた使い方について説明します。

[画面]:

f:id:m_kbou:20190529104044p:plain

※<実行>ボタンには、以下の記述例サンプルプロシージャが登録されています。

[記述例]:

※以下の記述例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方については、VBEの開き方を参考にして下さい。

-------------------------------------------------

Sub サンプル()
    '↓処理①
    Dim 行 As Double
    '↓処理②
    For 行 = 2 To 4
        Range("B" & 行) = Mid(Range("A" & 行), 4, 2)
    Next
End Sub

-------------------------------------------------

処理の流れは以下の通りとなります。

[処理①]:変数の定義
Dimによる変数の定義となります。
[処理②]:For~Next文の記述
For~Next文による繰り返し処理となります。[処理①]で指定した変数:行に2から4の値を順次セットし、処理を3回実行します。1回目の処理では行に2がセットされ、A2セルに入力されている文字列の先頭から数えて4桁目から2桁の文字を抽出し、B2セルにセットします。2回目の処理では行に3がセットされ、A3セルに入力されている文字列の先頭から数えて4桁目から2桁の文字を抽出し、B3セルにセットします。3回目の処理では行に4がセットされ、A4セルに入力されている文字列の先頭から数えて4桁目から2桁の文字を抽出し、B4セルにセットします。

[実行例]:

f:id:m_kbou:20190529154439p:plain

------------------------------------------------------------------------------------------------------------- 

Mid関数の使い方についての説明は以上です。

 

MidB関数の使い方

MidB関数の使い方について説明します。

-------------------------------------------------------------------------------------------------------------

(1)基本的な使い方

基本的な使い方について説明します。

[記述例]:

※以下の記述例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方については、VBEの開き方を参考にして下さい。

-------------------------------------------------

Sub サンプル()
    MsgBox MidB("おはようございます。", 5, 2)
End Sub

-------------------------------------------------

内容は、「”おはようございます。”の文字列で、先頭から数えて5バイト目から2バイトの文字を抽出し、MsgBoxで表示して下さい。」との意味になります。

[実行例]:

f:id:m_kbou:20190529154508p:plain

------------------------------------------------------------------------------------------------------------- 

(2)ループ処理と組み合わせた使い方

以下画面の内容を元に、For~Next文と組み合わせた使い方について説明します。

[画面]:

f:id:m_kbou:20190529104044p:plain

※<実行>ボタンには、以下の記述例サンプルプロシージャが登録されています。

[記述例]:

※以下の記述例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方については、VBEの開き方を参考にして下さい。

-------------------------------------------------

Sub サンプル()
    '↓処理①
    Dim 行 As Double
    '↓処理②
    For 行 = 2 To 4
        Range("B" & 行) = MidB(Range("A" & 行), 5, 2)
    Next
End Sub

-------------------------------------------------

処理の流れは以下の通りとなります。

[処理①]:変数の定義
Dimによる変数の定義となります。
[処理②]:For~Next文の記述
For~Next文による繰り返し処理となります。[処理①]で指定した変数:行に2から4の値を順次セットし、処理を3回実行します。1回目の処理では行に2がセットされ、A2セルに入力されている文字列の先頭から数えて5バイト目から2バイトの文字を抽出し、B2セルにセットします。2回目の処理では行に3がセットされ、A3セルに入力されている文字列の先頭から数えて5バイト目から2バイトの文字を抽出し、B3セルにセットします。3回目の処理では行に4がセットされ、A4セルに入力されている文字列の先頭から数えて5バイト目から2バイトの文字を抽出し、B4セルにセットします。

[実行例]:

f:id:m_kbou:20190529154547p:plain

------------------------------------------------------------------------------------------------------------- 

MidB関数の使い方についての説明は以上です。 

 

おわりに

今回はMid関数について説明をしました。類似の関数には、Left関数Right関数Instr関数もありますので、合わせて覚えて下さい。