本ページには広告が含まれています。

ExcelVBA CSng関数 引数をSingle型に変換します

ExcelVBA CSng関数 引数をSingle型に変換します

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

このコードを実行したイミディエイト画像がこちらです。

CSng_Sample を実行した結果のイミディエイト画像

引数には、小数部20桁までの「円周率」を設定し CDbl 関数 と CSng 関数の戻り値を比較します。

1番目(4~5行目)、文字列型の引数「”3.14159265358979323846″」を そのまま表示しています。

2番目(6行目)、CDbl 関数で引数を Double型に変換して表示しています。全体が14桁で小数部が13桁に丸められています。

3番目(7行目)、CSng 関数で引数を Single型に変換されました。全体が 7桁で 小数部が 6桁に丸められています。

おわりに

Excel VBA CSng 関数は、引数に指定した任意の文字列(式)または数値(式)を単精度浮動小数点型(Single型)に変換するデータ型変換関数です。

単精度浮動小数点型(Single型)は、桁数が比較的小さい小数部のある数値を扱う場合に使用されます。メモリ使用量を抑え、浮動小数点数の精度が高い精度までは要求されない場合に使用されます。

CSng 関数と CDbl 関数の使い分けは、精度と範囲の違いに基づいて判断しましょう。

以上、この解説が少しでもみなさまのお役に立てたなら幸いです(^^;

VBAの関数一覧はこちらからご参照ください。

スポンサーリンク
スポンサーリンク

VBAサンプルファイルダウンロードページのご案内

このページで使用したサンプルファイルの登録はありません(^^;
ページ内のコードをコピーしてご利用ください。

ダウンロードページへのリンクは下のカードクリックでジャンプできます。
よろしければご利用ください!