VB6・VBA関数メモ:Sgn関数
Sgn関数についてメモしておきます。
この関数は数値がプラスかマイナスかを判定する際に使用します。
ただ、等号で同じことができるのであまり使う人はいない気がします。
この関数は数値がプラスかマイナスかを判定する際に使用します。
ただ、等号で同じことができるのであまり使う人はいない気がします。
概要
Sgn(Number) | |||
---|---|---|---|
機能 | 指定した数値の符号(+-)を返す | ||
引数 | Number | 指定の数値 | Variant型 |
戻り値 | 正の場合: 1 0の場合: 0 負の場合:-1 |
Variant型(Integer型) |
使用例
説明 | 記述例 | 出力 |
---|---|---|
指定値の符号を取得 | Sgn(123) | 1 |
Sgn(0) | 0 | |
Sgn(-123) | -1 |
動作検証
説明 | 記述例 | 出力 |
---|---|---|
小数を指定可能 | Sgn(-1.23) | -1 |
文字列の数値を指定可能 | Sgn("-123") | -1 |
文字列の数値(16進数)を指定可能 | Sgn("&H123") | 1 |
文字列の数値(8進数)を指定可能 | Sgn("&O123") | 1 |
文字列の数値(指数表記)を指定可能 | Sgn("-123E-2") | 1 |
Nullを指定するとエラー | Sgn(Null) | エラー |
Double型の最小値(-1.79769313486231E308)を 下回るとエラー |
Sgn(-1.79769313486232E+308) | エラー |
Double型の最大値(1.79769313486232E307)を 上回るとエラー |
Sgn(1.79769313486232E308) | エラー |
なぜかDate型を指定すると1を返す (しかしString型の場合はエラー) |
Sgn(#2011/12/13#) | 1 |
Sgn("2011/12/13") | エラー |
応用例
説明 | 記述例 | 出力 |
---|---|---|
正、0、負で処理を分岐 |
Dim datas, i datas = Array(-123, 0, 123) For i = LBound(datas) To UBound(datas) Select Case Sgn(datas(i)) Case 1: Debug.Print ("正") Case 0: Debug.Print ("零") Case -1: Debug.Print ("負") End Select Next i |
"負" "零" "正" |
正、0、負で処理を分岐 (Sgn関数を使わない場合) |
Dim datas, i datas = Array(-123, 0, 123) For i = LBound(datas) To UBound(datas) Select Case datas(i) Case Is > 0: Debug.Print ("正") Case 0: Debug.Print ("零") Case Is < 0: Debug.Print ("負") End Select Next i |
"負" "零" "正" |
- 2011.12.01 Thursday
- VB・VBA
- 00:03
- comments(0)
- trackbacks(0)
- -
- -