まさ工房

ExcelVBAとAcessDBを利用した業務支援ツールを作成する工房です

【Excelマクロ・VBA】Left関数の使い方がわからないです。教えて!

       f:id:m_kbou:20190529104009p:plain

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

 

【目次】

 

構文

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

(1)Left関数の記述方法

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

Left([文字列][桁数]

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

[説明]:

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

[記述例]:

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

 

(2)LeftB関数の記述方法

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

LeftB([文字列][バイト数]

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

[説明]:

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

[記述例]:

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

 

使い方

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

Left関数の使い方

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

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

(1)基本的な使い方

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

[記述例]:

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

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

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

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

[実行例]:

f:id:m_kbou:20190529104031p:plain 

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

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

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

[画面]:

f:id:m_kbou:20190529104044p:plain

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

[記述例]:

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

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

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

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

[実行例]:

f:id:m_kbou:20190529104119p:plain

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

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

 

LeftB関数の使い方

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

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

(1)基本的な使い方

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

[記述例]:

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

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

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

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

[実行例]:

f:id:m_kbou:20190529104144p:plain

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

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

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

[画面]:

f:id:m_kbou:20190529104044p:plain

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

[記述例]:

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

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

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

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

[実行例]:

f:id:m_kbou:20190529104158p:plain

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

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

 

おわりに

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