Excel VBA CDec関数で文字列をDecimal型(10進数)の数値に変換する

VBA関数

CDec関数で数字の文字列をDecimal(10進数)型の数値に変換する方法をご説明します。

文字列を数値に変換する関数は色々ありますが、今回ご紹介するCDec関数は型をDecimal(10進数)型に指定して数値に変換します。

矛盾になりますが、Decimal型は宣言出来ませんので、戻り値はVariant型です。

Decimal(10進数)型は、10 の累乗の指数によって算出される、10進数を格納するデータ型です。

小数点以下が 0 の場合 、絶対値の最大値は「79,228,162,514,264,337,593,543,950,335」です。

小数点以下 28 桁の場合、絶対値の最大値は「7.9228162514264337593543950335」です。

10進型で表される絶対値の最小値は0を除いた場合「0.0000000000000000000000000001」です。

その他の数値へ変換する方法は下記記事をご覧ください。

1.CDec関数の使い方

指定した文字列をCDec関数は型をDecimal(10進数)型に指定して数値に変換します。

Decimal型は宣言出来ませんので、戻り値はVariant型です。

構文は次のように記述します。

CDec(値)

値には任意の文字列式または数式を指定します。

値がDecimal(10進数)型に変換できない場合はエラーとなります。

小数点以下は四捨五入されます。

「\」、「,」が含まれていても変換可能です。

また、数式の計算結果も数値化出来ますし、全角の数字も変換可能です。

日付を指定した場合は、シリアル値に変換されます。

Val関数は「,」カンマが含まれた数字は「,」の前までしか数値に変換できませんが、CDec関数は「,」も含めて数値に変換可能です。

2.サンプルコード

「\」や「,」も変換可能です。

※サンプルコードの一番上は「\1,000」です。

Sub Sample1()

Debug.Print CDec("\1,000") '1000に変換

Debug.Print CDec("5000") '5000に変換

Debug.Print CDec("123.456") '123.456に変換

Debug.Print CDec("1234567890.123456") '1234567890.12346に変換

Debug.Print CDec("1234567890.123454") '1234567890.12345に変換

Debug.Print CDec(10 / 3) '3.33333333333333に変換

Debug.Print CDec(#1/1/2019#)   '日付のシリアル値に変換

End Sub
タイトルとURLをコピーしました