関数・メソッド

文字列を整数型データ(数値)に変換する【CLngPtr関数】【ExcelVBA】

構文

CLngPtr(Expression)  As Long32bit/ LongLong64bit

Expression・・・ 長整数型/超長整数型に変換したい数値
戻り値 ・・・・・32bitLong型(長整数型)/64bitLongLong型(超長整数型)
Expressionに指定した数値をLong型 or LongLong型に変換します。
(Long型/LongLong型にならないデータは実行時エラーとなります)
LongLong型は64ビット専用のデータ型です。

CLngPtr関数のサンプルコード

Public Sub sample_CLngPtr()

    '数値が文字列データで取得した際は、Long型(LongLong型)へ変換される
    MsgBox CLngPtr("10")   '→10(Long型/LongLong型)
    MsgBox CLngPtr("10") '→10(Long型/LongLong型)
    
    
    '■小数点は銀行型まるめとなる(小数点が5の場合、一番近い偶数になる)
    MsgBox CLngPtr("2.5") '→2
    MsgBox CLngPtr("3.5") '→4

    MsgBox CLngPtr("2.5") '→2
    MsgBox CLngPtr("3.5") '→4

    '■構文エラー
    'MsgBox CLng()
    '■実行時エラー 13 型が一致しません
    MsgBox CLngPtr("aaa")
    MsgBox CLngPtr("十")
    MsgBox CLngPtr("百")

End Sub

注意点

  • 64ビット環境の際に、使用します。
  • 数値かどうか判断する場合はIsNumeric関数で数値か判断し、CLngPtr関数を使用してください。
  • 銀行型丸め処理(小数点が5の場合一番近い偶数にする)の為、通常の四捨五入で求めたい場合はIsNumeric関数で数値かどうか判断し、WorkSheet関数のRound関数を使用します。

関連記事

 

コメント

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