VBA Sqr 関数 数値の平方根(ルート)を求めます

VBA Sqr 関数 数値の平方根(ルート)を求めます

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 を返します。

数学の世界(虚数)とは異なり、標準のSqr関数はマイナスの値を処理できない点に注意が必要です。

戻り値

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

number の値Sgn の戻り値
0 以上(ゼロ及び正の数)平方根を示す Double を返す
0 より小さい(負の数)実行時エラー ‘5’ が発生する
NullNull を返す

戻り値のデータ型は 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 Sub

IsNumeric 関数で入力値が数値かどうだけ判定しています。

InputBox の入力値が数値だった場合、Sqr関数で平方根を求め次のように結果を表示します。

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

入力値が「負の数」だった場合の結果は次のとおりです。

負の数だった場合に表示されるMsgBox画像

入力値が「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 の Sqr 関数は、値の平方根を求める関数です。

Sqr関数のポイントをまとめると次のとおりです。

  • Sqr(number) で number の平方根を取得
  • 戻り値は Double型
  • 負の数を指定すると実行時エラー’13’ : 型不一致
  • 数値以外の指定では実行時エラー’5’ : 不正呼出
  • 距離計算や数学処理でよく使う

数学系の関数としては次の関数もよく使います。

これらを組み合わせることで、座標計算・統計計算など高度な処理もVBAで実装することができます。

 

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

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

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

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

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

よかったらシェアしてね!
  • URLをコピーしました!
目次