VBA(Visual Basic for Applications)における組み込み関数 Cos
は、余弦(コサイン)関数を計算するための関数です。三角関数のひとつであり、角度(ラジアン単位)を与えると、その余弦値(-1~1の範囲)を返すという特性があります。
この関数は、三角比の計算、物理シミュレーション、円運動、波形生成、グラフィックス処理、アニメーション制御など、幅広い場面で活用されます。
■ 1. Cos関数とは?
Cos
関数は、与えられた角度(ラジアン)に対応する余弦値を返します。数学における余弦とは、直角三角形における隣辺 ÷ 斜辺の比率に対応します。
また、余弦はサイン(正弦)と同様に周期的な関数であり、1つの周期が 2π(約6.283)で、波のようなパターンを描きます。
■ 2. Cos関数の構文
Cos(number)
引数:
number
:ラジアン単位で表された角度(Double
型)
戻り値:
- 指定角度の余弦(
Double
型、範囲: -1 ~ 1)
■ 3. ラジアンと度の変換
VBA の Cos
関数では、角度をラジアンで指定しなければなりません。
【変換式】
- 度 → ラジアン:
ラジアン = 度 × π / 180
- ラジアン → 度:
度 = ラジアン × 180 / π
Const PI As Double = 3.14159265358979
Dim deg As Double: deg = 60
Dim rad As Double: rad = deg * PI / 180
MsgBox Cos(rad) ' 60度のcos値(約0.5)
■ 4. Cos関数の基本的な使い方
● ラジアンで指定する例
MsgBox Cos(0) ' 出力: 1
MsgBox Cos(PI / 2) ' 出力: 0(90度)
MsgBox Cos(PI) ' 出力: -1(180度)
MsgBox Cos(3 * PI / 2) ' 出力: 0(270度)
● 度数指定のヘルパー関数を作成
Function CosDeg(degree As Double) As Double
Const PI As Double = 3.14159265358979
CosDeg = Cos(degree * PI / 180)
End Function
MsgBox CosDeg(60) ' 約0.5
■ 5. Cos関数の特徴
- 値の範囲は -1 ~ 1
- 周期は 2π
- 対称性:偶関数であり、
Cos(-x) = Cos(x)
- 最大値は 1(角度0°または0ラジアン)
- 最小値は -1(角度180°またはπラジアン)
■ 6. 応用例
● 三角関数の波形出力
Sub OutputCosWave()
Const PI As Double = 3.14159265358979
Dim deg As Integer
Dim rad As Double
For deg = 0 To 360 Step 10
rad = deg * PI / 180
Debug.Print "角度:" & deg & "°, Cos値:" & Cos(rad)
Next deg
End Sub
このようにすれば、Excel シートやグラフで波形として視覚化できます。
● 円運動(X座標の計算)
Sub CircleMotion()
Const PI As Double = 3.14159265358979
Dim angle As Double
Dim radius As Double: radius = 100
Dim x As Double
For angle = 0 To 360 Step 30
x = radius * Cos(angle * PI / 180)
Debug.Print "角度 " & angle & "°:X座標 = " & x
Next angle
End Sub
このコードは、円周上の点のX座標を計算します。Y座標には Sin
を使えば完全な円の動きを再現できます。
● 時刻とともに変化する振動シミュレーション
Sub SimulateOscillation()
Const PI As Double = 3.14159265358979
Dim t As Double
For t = 0 To 2 * PI Step 0.1
Debug.Print "t=" & t & " → " & "位置=" & Cos(t)
Next t
End Sub
これは単振動(例:振り子やバネ)の位置の変化を表現できます。
■ 7. 注意点
● 単位の間違いに注意(度ではなくラジアン)
間違って度数のまま Cos
に渡すと、誤った結果になります。
' 間違い(60度をそのまま渡す)
MsgBox Cos(60) ' 結果:-0.952(正しくない)
' 正しい方法
MsgBox Cos(60 * 3.14159265358979 / 180) ' 結果:0.5
● π(円周率)は定義が必要
VBAには PI()
関数がないため、自分で定数を定義する必要があります。
Const PI As Double = 3.14159265358979
■ 8. Sin関数との違いと使い分け
特性 | Sin関数 | Cos関数 |
---|---|---|
開始点 | 0 | 1 |
対称性 | 奇関数(反対符号) | 偶関数(同じ符号) |
用途 | Y座標に多い | X座標に多い |
例えば、円の動きを表現するには:
x = r * Cos(θ)
y = r * Sin(θ)
とするのが基本です。
■ 9. 関連関数
関数 | 説明 |
---|---|
Sin(number) | 正弦(サイン)関数 |
Tan(number) | 正接(タンジェント)関数 |
Atn(number) | 逆正接(アークタンジェント)関数 |
Sqr(number) | 平方根を返す関数 |
Abs(number) | 絶対値 |
Round(number, digits) | 四捨五入 |
■ 10. まとめ
VBAの Cos
関数は、三角関数の「余弦」を求めるための基本関数です。特に、円運動・波形・周期的な振動のモデル化などでよく利用されます。使い方はシンプルですが、ラジアン単位の理解と PI
の定義が非常に重要です。
✅ 要点まとめ
Cos(number)
はラジアンで角度を受け取り、余弦値を返す- 値の範囲は -1 ~ 1
- 周期は 2π、
Cos(0)
は 1、Cos(π)
は -1 - グラフィックスやアニメーション、物理演算に有効
- 角度を度で扱う場合は
π / 180
で変換 - Sin関数と組み合わせて使うことで、より幅広い動きや表現が可能