Excel VBAの「CLng 関数」について解説します。
CSng 関数とは
Excel VBA の CSng 関数は、引数を Single型 (単精度浮動小数点型) に変換する データ型変換関数のひとつです。
※ 浮動小数点型のデータ型には Single型(単精度)と Double(倍精度)があります。
では、CSng 関数の構文や引数の設定と実際の使い方について具体的に解説していきたいと思います。
CSng 関数(Visual Basic for Applications リファレンス)
構文(引数と戻り値)
Excel VBAの関数を使いこなすには、関数の構文を正しく理解しておくことが重要です。
構文
CSng(expression)
引数
引数 | 説明 |
---|---|
expression | 【必須】任意の数値(式)または文字列(式)を指定します |
戻り値
戻り値 | 説明 |
---|---|
Single型の数値 | 引数を評価して単精度浮動小数点数型(Single)の値を返します 【データ型 Single(単精度浮動小数点数型) の範囲】 (負の値) -3.402823E38 ~ -1.401298E-45 (正の値) 1.401298E-45 ~ 3.402823E38 ※ 記憶領域サイズは 32ビット(4 バイト)です |
Single型 と Double型 使い分けの判断基準
Single型 と Double型 使い分けの判断基準を表にしてみました。
判断項目 | CDbl 関数(Double型) | CSng 関数(Single型) |
---|---|---|
精度の必要性 | 高い精度が必要な場合 | 精度はあまり必要ない場合 |
数値の範囲 | 大きな範囲の数値 (約15桁に丸められる) | 小さい範囲の数値 (約7桁に丸められる) |
メモリ使用量 | 節約が不要の場合 64ビット(8 バイト) | 節約したい場合 32ビット(4 バイト) |
解説(使用例)
サンプルコードを使って解説します。
CSng 関数の引数と戻り値を確認するサンプル
CDbl 関数で使ったサンプルに CSng 関数を追加して結果(イミディエイト表示)を比較してみます。
'■CSng関数サンプル
Sub CSng_Sample()
Dim strNum As String
strNum = "3.141592653589796323846" '円周率(小数部20桁まで)
Debug.Print strNum '引数の数値文字列を表示
Debug.Print CDbl(strNum) 'Double型に変換して表示"
Debug.Print CSng(strNum) 'Single型に変換して表示"
End Sub
このコードを実行したイミディエイト画像がこちらです。
引数には、小数部20桁までの「円周率」を設定し CDbl 関数 と CSng 関数の戻り値を比較します。
1番目(4~5行目)、文字列型の引数「”3.14159265358979323846″」を そのまま表示しています。
2番目(6行目)、CDbl 関数で引数を Double型に変換して表示しています。全体が14桁で小数部が13桁に丸められています。
3番目(7行目)、CSng 関数で引数を Single型に変換されました。全体が 7桁で 小数部が 6桁に丸められています。
おわりに
VBAの関数一覧はこちらからご参照ください。
VBAサンプルファイルダウンロードページのご案内
このページで使用したサンプルファイルの登録はありません(^^;
ページ内のコードをコピーしてご利用ください。
ダウンロードページへのリンクは下のカードクリックでジャンプできます。
よろしければご利用ください!
Excel VBA CSng 関数は、引数に指定した任意の文字列(式)または数値(式)を単精度浮動小数点型(Single型)に変換するデータ型変換関数です。
単精度浮動小数点型(Single型)は、桁数が比較的小さい小数部のある数値を扱う場合に使用されます。メモリ使用量を抑え、浮動小数点数の精度が高い精度までは要求されない場合に使用されます。
CSng 関数と CDbl 関数の使い分けは、精度と範囲の違いに基づいて判断しましょう。
以上、この解説が少しでもみなさまのお役に立てたなら幸いです(^^;