【Excel VBA】三角関数と逆三角関数の計算とグラフの表示
三角関数の計算
VBAでは Sin, Cos, Tan を使用して三角関数の計算ができます。
Sub CalculateTrigFunctions()
Dim angle As Double
angle = WorksheetFunction.Radians(30) ' 30度をラジアンに変換
MsgBox "Sin(30°): " & Sin(angle) & vbCrLf & _
"Cos(30°): " & Cos(angle) & vbCrLf & _
"Tan(30°): " & Tan(angle)
End Sub
逆三角関数の計算
逆三角関数(アークサイン、アークコサイン、アークタンジェント)は WorksheetFunction.Asin などで計算できます。
Sub CalculateInverseTrigFunctions()
Dim value As Double
value = 0.5
MsgBox "Asin(0.5) (deg): " & WorksheetFunction.Degrees(WorksheetFunction.Asin(value)) & vbCrLf & _
"Acos(0.5) (deg): " & WorksheetFunction.Degrees(WorksheetFunction.Acos(value)) & vbCrLf & _
"Atan(0.5) (deg): " & WorksheetFunction.Degrees(WorksheetFunction.Atan(value))
End Sub
グラフの表示
VBAを使用してExcelに三角関数のグラフを描画することもできます。
Sub PlotSineWave()
Dim ws As Worksheet
Dim i As Integer
Dim x As Double
Set ws = ThisWorkbook.Sheets(1)
ws.Cells.Clear ' シートをクリア
ws.Cells(1, 1).Value = "X"
ws.Cells(1, 2).Value = "Sin(X)"
For i = 2 To 100
x = (i - 2) * 0.1
ws.Cells(i, 1).Value = x
ws.Cells(i, 2).Value = Sin(x)
Next i
' グラフの作成
Dim chartObj As ChartObject
Set chartObj = ws.ChartObjects.Add(100, 50, 400, 300)
With chartObj.Chart
.SetSourceData Source:=ws.Range("A1:B100")
.ChartType = xlXYScatterSmooth
End With
End Sub