Excel VBAの「Sqr 関数」について解説します。
Sqr 関数とは
Excel VBA の Sqr 関数は、指定した数値の平方根(ルート√)を示す Double値を返します。
数学・統計・距離計算などでよく使われる基本的な関数です。
Sqr 関数の構文や実際の使い方について解説します。
Sqr 関数(Visual Basic for Applications リファレンス)
構文(引数と戻り値)
Excel VBAの関数を使いこなすには、関数の構文を正しく理解しておくことが重要です。
構文
Sqr(number)
※ Sqr は「Square root(平方根)」の略です。
引数
| 指定項目 | 説明 |
|---|---|
| number | 【必須】0 以上の有効な数値(式) (平方根を求めたい数値を指定します) |
※ 負の数を指定すると「実行時エラー ‘5’: プロシージャの呼び出し、または引数が不正です」が発生します。
※ number の値が Null の場合は、Null を返します。
戻り値
戻り値は Double 型の数値です。
| number の値 | Sgn の戻り値 |
|---|---|
| 0 以上(ゼロ及び正の数) | 平方根を示す Double を返す |
| 0 より小さい(負の数) | 実行時エラー ‘5’ が発生する |
| Null | Null を返す |
戻り値のデータ型は Double です。
解説(使用例)
ここからは、サンプルを使って使用例や注意点などについて解説します。
Sqr 関数の基本的な使い方
Sqr(x) = √x です。
4 の平方根は、Sqr(4) = √4 = 2 ということです。
基本的な Sqr 関数の使用例
InputBox に入力した値の平方根を Sqr 関数で求めます。
'■Sqr関数サンプル1(入力値の平方根を求める)
Sub Sqr_Sample_01()
Dim num As Variant
num = InputBox("平方根を求める値を入力して下さい")
If IsNumeric(num) Then
MsgBox "Sqr(" & num & ") = " & Sqr(num)
Else
'数値以外が入力された場合の処理
MsgBox num & ":数値以外が入力されました!"
End If
End SubIsNumeric 関数で入力値が数値かどうだけ判定しています。
InputBox の入力値が数値だった場合、Sqr関数で平方根を求め次のように結果を表示します。

InputBox に数値以外が入力された場合に表示されるメッセージがこちらです。

入力値が「負の値」だった場合に発生するエラーの対処は行っていません。
入力値の判定をSelect caseで行う例
Sqr 関数では「負の数」と「数値以外」が引き当てられた場合の対処を Select Case を使って分岐させる方法です。
'■Sqr関数サンプル2(入力値を判定後に処理する)
Sub Sqr_Sample_02()
Dim num As Variant
Dim res As String
num = InputBox("数値を入力して下さい")
'入力値を判定して条件分岐
Select Case num
Case Is <> IsNumeric(num)
res = num & ":数値以外が入力されました!"
Case Is >= 0
res = "Sqr(" & num & ") = " & Sqr(num)
Case Is < 0
res = num & ":負の数は指定できません!"
Case Else
If IsNull(num) Then num = "Null"
res = "入力値は「" & num & "」です!"
End Select
'結果をMsgBoxで表示する
MsgBox res
End Sub
入力値が「Null」だった場合 Case Else で IsNull関数を使って判定し結果を次のように表示させています。

座標間の直線距離を求める
2点間の直線距離(ユークリッド距離)を求めるには、三平方の定理(ピタゴラスの定理)√((x2 – x1)2 + (y2 – y1)2) を利用します。
これを Sqr関数で表すと Sqr((x2 – x1)^2 + (y2 – y1)^2) となります。
'■Sqr関数サンプル3(座標間の距離を求める)
Sub Sqr_Sample_03()
Dim x1 As Double '1番目のx座標
Dim y1 As Double '1番目のy座標
Dim x2 As Double '2番目のx座標
Dim y2 As Double '2番目のy座標
Dim distance As Double '距離
x1 = 2
y1 = 3
x2 = 5
y2 = 7
distance = Sqr((x2 - x1) ^ 2 + (y2 - y1) ^ 2)
MsgBox "(2,3)と(5,7)2座標間の距離は:" & distance
End Subこのコードの実行結果は次の MsgBox のとおりです。

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

VBAサンプルファイルダウンロードページのご案内
このページで使用したサンプルファイルの登録はありません(^^;
ページ内のコードをコピーしてご利用ください。
ダウンロードページへのリンクは下のカードクリックでジャンプできます。
よろしければご利用ください!

