まさ工房

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

【Excelマクロ・VBA】CStr関数(数値を文字列に変換)とVal関数(文字列を数値に変換)の使い方を教えて!

       f:id:m_kbou:20190613115747p:plain

CStr関数は、数値を文字列に変換します。また、Val関数は、文字列を数値に変換します。使い方について説明します。

 

【目次】

 

構文

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

(1)CStr関数の記述方法

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

CStr([数値]

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

[説明]:

[数値]には、文字列に変換するための数値を記述します。内容を纏めると、「[数値]で入力した数値を文字列に変換して下さい。」との意味になります。

[記述例]:

CStr(10)

 

(2)Val関数の記述方法

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

Val([文字列]

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

[説明]:

[文字列]には、数値に変換するための文字列を記述します。内容を纏めると、「[文字列]で入力した文字列を数値に変換して下さい。」との意味になります。

[記述例]:

Val(”10”)

 

使い方

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

数値を文字列に変換(CStr関数)

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

[記述例]:

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

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

Sub サンプル()
    '↓処理①
    Dim 数値 As Integer
    '↓処理②
    数値 = 10
    '↓処理③
    MsgBox "数値は「" & 数値 & "」です。変数型は「" & VarType(数値) & "」です。"
    '↓処理④
    MsgBox "数値は「" & CStr(数値) & "」です。変数型は「" & VarType(CStr(数値)) & "」です。"
End Sub

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

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

[処理①]:変数の定義をします
Dimによる変数の定義となります。変数名は「数値」となり、入力できる値は「整数値のみ」となります。
[処理②]:変数に値をセットします
変数:数値に「10」をセットします。
[処理③]:MsgBoxを使用した変数:数値の値と変数型を表示します
今回のMsgBoxでは、まず最初に[処理②]でセットした変数:数値を表示します。特別な変換処理をしていないため、数値の「10」が表示され、次のVarTypeでは、整数型との扱いから「2」が表示されます。
[処理④]:MsgBoxを使用した変数:数値の値と変数型を表示します
今回のMsgBoxでは、まず最初に[処理②]でセットした変数:数値を表示します。数値→文字列へ変換をしているため、文字列としての「10」が表示され、次のVarTypeでは、文字列型との扱いから「8」が表示されます。

[実行例]:

・1回目のMsgBox表示内容です。

f:id:m_kbou:20190613115814p:plain

・2回目のMsgBox表示内容です。

f:id:m_kbou:20190613115825p:plain

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

 

文字列を数値に変換(Val関数)

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

[記述例]:

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

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

Sub サンプル()
    '↓処理①
    Dim 文字 As String
    '↓処理②
    文字 = "10"
    '↓処理③
    MsgBox "文字は「" & 文字 & "」です。変数型は「" & VarType(文字) & "」です。"
    '↓処理④
    MsgBox "文字は「" & Val(文字) & "」です。変換型は「" & VarType(Val(文字)) & "」です。"
End Sub

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

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

[処理①]:変数の定義をします
Dimによる変数の定義となります。変数名は「文字」となり、入力できる値は「文字列のみ」となります。
[処理②]:変数に値をセットします
変数:文字に文字列の「10」をセットします。
[処理③]:MsgBoxを使用した変数:文字の値と変数型を表示します
今回のMsgBoxでは、まず最初に[処理②]でセットした変数:文字を表示します。特別な変換処理をしていないため、文字の「10」が表示され、次のVarTypeでは、文字列型との扱いから「8」が表示されます。
[処理④]:MsgBoxを使用した変数:文字の値と変数型を表示します
今回のMsgBoxでは、まず最初に[処理②]でセットした変数:文字を表示します。文字→数値へ変換をしているため、数値としての「10」が表示され、次のVarTypeでは、数値型(倍精度浮動小数点数型)との扱いから「5」が表示されます。

[実行例]:

・1回目のMsgBox表示内容です。

f:id:m_kbou:20190613115842p:plain

・2回目のMsgBox表示内容です。

f:id:m_kbou:20190613115856p:plain

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

 

おわりに

今回は、Str関数及びVal関数の使い方について説明しました。形式を変換するケースは、VBAを記述している中では多々あります。是非実践で有効活用してみて下さい。