はじめに
Excel VBA には様々な数値関数がありますが、その中でも「ABS関数」は比較的使われることが多い関数の一つです。本記事では、ABS関数の概要と使い方について解説します。
ABS関数とは?使い方は?
ABS関数は、与えられた数値の絶対値を返す関数です。絶対値とは、数値の符号を取り除いたものを指します。例えば、-5の絶対値は5、5の絶対値は5です。
ABS関数は、次のように記述します。
1 |
ABS(数値) |
ここで、「数値」には、絶対値を求めたい数値を指定します。
以下は、ABS関数の使用例です。
1 2 3 4 5 6 |
Dim num1 As Integer Dim num2 As Integer num1 = -5 num2 = 10 MsgBox ABS(num1) ' 結果は5と表示される MsgBox ABS(num2) ' 結果は10と表示される |
上記の例では、-5と10の絶対値を求めています。ABS関数を使うことで、数値の符号を気にすることなく、絶対値を求めることができます。
注意点
ABS関数は、数値型のデータに対してのみ使用することができます。文字列型や日付型のデータに対して使用すると、エラーが発生します。また、ABS関数に渡す引数は、必ず数値型の変数や式である必要があります。
まとめ
本記事では、Excel VBAのABS関数について解説しました。ABS関数を使用することで、数値の符号を気にすることなく、絶対値を求めることができます。数値型のデータに対して使用することができ、引数は必ず数値型の変数や式である必要があります。
サンプルコード
以下は、入力されたセル範囲内の数値の絶対値を求め、別のセル範囲に出力します。また、絶対値が10以上の場合は赤色、それ以外の場合は青色でセルを塗りつぶします。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
Sub advancedLevel() Dim inputRange As Range Dim outputRange As Range Set inputRange = Application.InputBox("入力するセル範囲を選択してください", Type:=8) Set outputRange = Application.InputBox("出力するセル範囲を選択してください", Type:=8) For Each cell In inputRange If IsNumeric(cell.Value) Then outputRange.Value = ABS(cell.Value) If ABS(cell.Value) >= 10 Then outputRange.Interior.Color = RGB(255, 0, 0) Else outputRange.Interior.Color = RGB(0, 0, 255) End If Set outputRange = outputRange.Offset(1, 0) End If Next cell End Sub |
入力された数値列の偏差の平均を求めるサンプルコードです。偏差の平均は、各数値から平均値を引いた値の絶対値を求めた後、その平均値を求めます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
Sub advancedLevel1() Dim inputRange As Range Set inputRange = Application.InputBox("数値列を選択してください", Type:=8) Dim values() As Double ReDim values(1 To inputRange.Count) Dim sum As Double Dim avg As Double Dim deviationSum As Double Dim i As Integer For Each cell In inputRange If IsNumeric(cell.Value) Then i = i + 1 values(i) = cell.Value sum = sum + cell.Value End If Next cell If i = 0 Then MsgBox "数値が入力されていません。" Exit Sub End If avg = sum / i For j = 1 To i deviationSum = deviationSum + Abs(values(j) - avg) Next j Dim deviationAvg As Double deviationAvg = deviationSum / i MsgBox "偏差の平均は" & deviationAvg & "です。" End Sub |
コメント