組込関数 Sin

数値・数学関数

VBA(Visual Basic for Applications)の組み込み関数 Sin は、正弦(サイン)関数を計算するために使用されます。これは数学における三角関数のひとつであり、角度(ラジアン単位)を与えると、その正弦値(-1〜1の範囲)を返す関数です。

このドキュメントでは、Sin 関数の構文、特徴、使い方、ラジアンと度の変換、応用例、注意点、関連関数などを含め、約2500文字程度で詳しく解説します。


■ 1. Sin関数の概要

Sin 関数は、与えられた角度(ラジアンで指定)に対して、その正弦(sin)値を計算します。正弦とは、直角三角形において、ある角度に対する**「対辺 ÷ 斜辺」**の比率を意味します。また、円周上の三角関数としても解釈され、周期関数として様々な物理・工学・グラフィックス分野で利用されます。


■ 2. 構文

Sin(number)

引数:

  • number: ラジアン単位の角度を表す Double 型または数値式。

戻り値:

  • 指定した角度の正弦値(Double 型)。値の範囲は -1 ~ 1。

■ 3. ラジアンと度の関係

VBA の Sin 関数は、角度をラジアンで指定する必要があります。度数(°)を使いたい場合は、以下の変換が必要です。

度 → ラジアン変換

ラジアン = 度 × (π / 180)

例:90度をラジアンに変換すると

90 * (3.14159265358979 / 180) = 約 1.5708

■ 4. 使用例

● 基本的な正弦値の取得

MsgBox Sin(0)  ' 結果: 0
MsgBox Sin(3.14159265358979 / 2) ' 結果: 1(90度)
MsgBox Sin(3.14159265358979) ' 結果: 0(180度)
MsgBox Sin(3 * 3.14159265358979 / 2) ' 結果: -1(270度)

● 度を使用する関数例(90度 → sin)

Function SinDeg(degree As Double) As Double
SinDeg = Sin(degree * (3.14159265358979 / 180))
End Function

MsgBox SinDeg(90) ' 結果: 1

■ 5. 応用例

● 三角関数グラフの描画(ポイント値を生成)

Dim i As Integer
Dim angle As Double
For i = 0 To 360 Step 10
angle = i * (3.14159265358979 / 180) ' 度→ラジアン
Debug.Print "角度:" & i & "°, Sin値:" & Sin(angle)
Next i

このような処理をExcelシートに出力すれば、Sin 関数の波形を可視化できます。


■ 6. グラフィックスやアニメーションへの応用

正弦波は、自然界の波動現象やアニメーションの動きのシミュレーションに非常によく使われます。

● ボールの上下運動(擬似アニメーション)

Sub BallMotion()
Dim i As Integer
Dim y As Double
For i = 0 To 360 Step 10
y = 100 * Sin(i * (3.14159265358979 / 180)) ' Y座標にSin波を使用
Debug.Print "フレーム" & i & ": Y = " & y
Next i
End Sub

このような Sin 関数の周期的変化を使うことで、自然で滑らかな動きを表現できます。


■ 7. 関連関数

関数名内容
Cos(number)余弦(cos)関数、ラジアン指定
Tan(number)正接(tan)関数、ラジアン指定
Atn(number)逆正接(arctangent)関数
Sqr(number)平方根
Abs(number)絶対値(符号の除去)
Round(number, digits)四捨五入

■ 8. 注意点

● ラジアンの指定忘れ

Sin 関数はラジアン指定が必須です。度数をそのまま指定すると、意図しない結果になります。

' 間違った例(度数で指定)
MsgBox Sin(90) ' → -0.893997(正しくない)

' 正しい例(ラジアンに変換)
MsgBox Sin(90 * 3.14159265358979 / 180) ' → 1

● π(パイ)の定義

VBAには PI() のような定数は存在しないため、自分で定義する必要があります。

Const PI As Double = 3.14159265358979

■ 9. 実用的なシナリオ

● 波形データの生成(オーディオや信号処理)

Dim samples(100) As Double
Dim i As Integer
Const PI As Double = 3.14159265358979

For i = 0 To 100
samples(i) = Sin(2 * PI * i / 100) ' 1周期分のサイン波
Next i

● 円運動の位置計算

Dim angle As Double
Dim x As Double, y As Double
Const r As Double = 50
Const PI As Double = 3.14159265358979

angle = 45 * (PI / 180)
x = r * Cos(angle)
y = r * Sin(angle)

MsgBox "X座標: " & x & vbCrLf & "Y座標: " & y

■ 10. まとめ

VBAの Sin 関数は、三角関数の正弦を計算するための基本的かつ強力なツールです。単なる数学関数としてだけでなく、物理現象のシミュレーションやグラフィックの動作制御、波形生成など、幅広い分野で利用されます。

【ポイントのおさらい】

  • Sin(number) はラジアン単位の角度を与えて正弦値を返す
  • -1~1の範囲の値を出力
  • 90度 = π/2 を正しく理解し、度数使用時は変換が必要
  • 波のような周期的な動作を実装したい場合に有用
  • 関連関数(Cos, Tan, Atn)と組み合わせるとより応用が広がる
タイトルとURLをコピーしました