0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Sqr関数の使い方と注意点

Sqr関数は、数値の平方根を返す関数です。

構文

Sqr(数値)
  • 数値 : 正の数値(または 0)
  • 戻り値 : 引数の平方根(Double型)

使用例

Sub Sample()
    Debug.Print "Sqr(4) : " & Sqr(4)
    Debug.Print "Sqr(23) : " & Sqr(23)
    Debug.Print "Sqr(0) : " & Sqr(0)
End Sub

▶ 出力結果

Sqr(4) : 2
Sqr(23) : 4.79583152331272
Sqr(0) : 0

⚠️注意

Sqr関数の戻り値はDouble型

Sqr関数の戻り値はDouble型です。

Sub Sample()
    Debug.Print "Sqr(4) : " & TypeName(Sqr(4))
    Debug.Print "Sqr(23) : " & TypeName(Sqr(23))
    Debug.Print "Sqr(0) : " & TypeName(Sqr(0))
End Sub

▶ 出力結果

Sqr(4) : Double
Sqr(23) : Double
Sqr(0) : Double

負の値はエラーになる

Sub Sample()
    On Error Resume Next

    Err.Clear
    Debug.Print "負の値 : " & Sqr(-4)
    If Err.Number <> 0 Then Debug.Print "負の値 : エラー:" & Err.Description
    
    On Error GoTo 0
End Sub

▶ 出力結果

負の値 : エラー:プロシージャの呼び出し、または引数が不正です。

上記ではエラー発生時にエラーを無視して次の処理を実行するよう記述していますが、
エラーを無視する記述が無い場合、エラー時に処理が止まってしまいます。
引数に渡す内容には注意しましょう。

error.png

数値(半角または全角)以外はエラーになる

Sqr関数の引数に半角または全角の数値以外を指定するとエラーになります。

Sub Sample()
    On Error Resume Next

    Err.Clear
    Debug.Print "半角英字 : " & Sqr("Abc")
    If Err.Number <> 0 Then Debug.Print "半角英字 : エラー:" & Err.Description

    Err.Clear
    Debug.Print "全角英字 : " & Sqr("Abc")
    If Err.Number <> 0 Then Debug.Print "全角英字 : エラー:" & Err.Description

    Err.Clear
    Debug.Print "ひらがな : " & Sqr("あいう")
    If Err.Number <> 0 Then Debug.Print "ひらがな : エラー:" & Err.Description

    Err.Clear
    Debug.Print "漢字 : " & Sqr("亜伊宇")
    If Err.Number <> 0 Then Debug.Print "漢字 : エラー:" & Err.Description

    Err.Clear
    Debug.Print "半角記号 : " & Sqr("!?#")
    If Err.Number <> 0 Then Debug.Print "半角記号 : エラー:" & Err.Description

    Err.Clear
    Debug.Print "全角記号 : " & Sqr("!?#")
    If Err.Number <> 0 Then Debug.Print "全角記号 : エラー:" & Err.Description

    Err.Clear
    Debug.Print "半角数字 : " & Sqr("1.23")
    If Err.Number <> 0 Then Debug.Print "半角数字 : エラー:" & Err.Description

    Err.Clear
    Debug.Print "全角数字 : " & Sqr("1.23")
    If Err.Number <> 0 Then Debug.Print "全角数字 : エラー:" & Err.Description

    Err.Clear
    Debug.Print "スペース : " & "[" & Sqr("1. 2 3") & "]"
    If Err.Number <> 0 Then Debug.Print "スペース : エラー:" & Err.Description

    On Error GoTo 0
End Sub

▶ 出力結果

半角英字 : エラー:型が一致しません。
全角英字 : エラー:型が一致しません。
ひらがな : エラー:型が一致しません。
漢字 : エラー:型が一致しません。
半角記号 : エラー:型が一致しません。
全角記号 : エラー:型が一致しません。
半角数字 : 1.10905365064094
全角数字 : 1.10905365064094
スペース : エラー:型が一致しません。

上記ではエラー発生時にエラーを無視して次の処理を実行するよう記述していますが、
エラーを無視する記述が無い場合、エラー時に処理が止まってしまいます。
引数に渡す内容には注意しましょう。

error.png

その他のVBA関数

【Excel VBA】VBAでよく使う関数一覧&基本の使い方

参考リンク

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?