VBA Sin 関数 与えた数値の正弦(サイン)値を返します

VBA GetSetting 関数 指定のキー設定値を取得する

Excel VBAの「Sin 関数」について解説します。

目次

Sin 関数とは

Excel VBA の Sin 関数は、数学的な三角関数の正弦(サイン)を扱うときに使用します。与えられた数値の正弦(サイン)を返す関数です。

Sin 関数の構文や実際の使い方について具体的に解説していきたいと思います。

Sin 関数(Visual Basic for Applications リファレンス)

構文(引数と戻り値)

Excel VBAの関数を使いこなすには、関数の構文を正しく理解しておくことが重要です。

構文

Sin(number)

引数

指定項目説明
number【必須】角度をラジアン(弧度法)で表す任意の有効な数値(式)

※ 角度を「°(度)」ではなくラジアンで扱う点の注意

number の単位「ラジアン」とは

ラジアンとは数学の角度を表す単位で
円(扇形)の孤の長さ(L)÷円の半径(r)」によって求められる値のことです。

度°をラジアンに変換するには、度にπ/180 を掛けます。 ラジアンから度に変換するには、ラジアンに 180/π を掛けます。

VBA では、「度 * WorksheetFunction.Pi() / 180」ですが「WorksheetFunction.Radians(度)」を使ってもOKです。

  • 0° → 0 ラジアン
  • 45° → π/4 ラジアン
  • 90° → π/2 ラジアン
  • 180° → π ラジアン
  • 360° → 2π ラジアン

戻り値

直角三角形の 2 辺の比( -1 ~ 1 の範囲)を Double型の値で返します。

2 辺の比は、角度の反対側の辺の長さを斜辺の長さで割った値です。

解説(使用例)

ここからは、サンプルを使って使用例や注意点などについて解説します。

Sin 関数の基本的な使い方

角度をラジアンに変換して Sin を求める

次の例は、最初にSaveSettingステートメントでWindowsレジストリにエントリを作成したうえで、GetSetting 関数を使って、レジストリから設定を取得し、MsgBoxに表示します。アプリケーション名やsection名前は、GetSettingで取得することはできないのでご注意ください。最後に、DeleteSetting ステートメントでアプリケーションのエントリを削除します。

'■Sin関数サンプル(IMEモードを取得表示)
Sub Sin_Sample_01()
  Dim deg As Double   '度=degrees
  Dim rad As Double   'ラジアン=Radians
  Dim res As Double   '結果=result
    
  deg = 30 '30度
  rad = deg * WorksheetFunction.Pi() / 180
  'または
  'rad = WorksheetFunction.Radians(deg)
    
  'サイン(正弦)を求める
  res = Sin(rad)
  '結果をMsgBoxで表示する
  MsgBox "Sin(" & deg & "°) = " & res
End Sub

実行結果を表示したMsgBoxが次の画像です。

Sin(30度のラジアン地)の結果画像

30°の Sin(サイン) は 0.5 ですね。

0〜360°のサイン値をワークシートに出力する

Excelワークシートに結果を書き込むサンプルです。
0〜360°のループ処理でラジアンとサインの値を書き出します。

'■Sin関数サンプル2(各値をシートに出力する)
Sub Sin_Sample_02()
    Dim i As Long
    Dim rad As Double
    
    Range("A1").Value = "角度 °"
    Range("B1").Value = "ラジアン"
    Range("C1").Value = "Sin値"
    
    For i = 0 To 360 Step 30
        rad = WorksheetFunction.Radians(i)
        Cells(i / 30 + 2, 1).Value = i
        Cells(i / 30 + 2, 2).Value = rad
        Cells(i / 30 + 2, 3).Value = Sin(rad)
    Next i
End Sub

実行結果がこちらです。

シートに書き出された角度→ラジアン→Sin値

角度が180度を超えるとサイン値はマイナスになることがわかりますね。

サイン値をグラフにすると綺麗な「サイン波」を作ることができます。

この「サイン波」を利用して、VBAフォームや画像を左右に揺らすなど「周期的な動き」をさせるなどにも活用できます。

まとめ

おわりに

VBA の Sin 関数は、数学的な三角関数(sin,cos,tan)の sin を扱うときに使用します。

sin は、直角三角形の斜辺分の高さ(角度に対する高さの割合)のことです。

  • Sin 関数はラジアン単位で引数値を受け取ります
  • 角度(°) → ラジアンへの変換が必須です
  • Sin は円のY座標です
  • Sin の値は -1 ~ 1 の範囲(角度が増えると「波のように」変化する)
    • 0° → 0
    • 90° → 1
    • 180° → 0
    • 270° → -1
    • 360° → 0
  • グラフ、アニメーション、周期動作、シミュレーションなどの用途があります
  • Excelシートへの出力と組み合わせると活用の幅が広がります

【注意】次のような間違いや注意点があります。

  • ❌ 度をそのまま引数として渡してしまう
  • ❌ 戻り値が 1 を超えると思ってしまう
  • ❌ Cos / Tan との違いがよく分からない
    • Sin(正弦)= 角度に対する高さの割合(斜辺分の高さ)
    • Cos(余弦)= 角度に対する底辺の割合(斜辺分の底辺)
    • Tan(正接)= 傾き具合(底辺分の高さ)

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

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

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

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

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

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