VBAプログラミング初心者です。温度と単位、および物質の相を選択するオプションを提供する熱容量の関数を作成しようとしています。私はすでにコードを持っており、予想される配列エラーが発生し続けるため、それをデバッグするマクロを作成しました。
コード全体は次のとおりです。
Sub Macro1()
'
' Macro1 Macro
'
Dim A As Double
Dim B As Double
Dim C As Double
Dim D As Double
Dim E As Double
Dim Temp As Double
Dim Bleh As Double
A = ThisWorkbook.Sheets("Heat Flows").Range("D3")
B = ThisWorkbook.Sheets("Heat Flows").Range("E3")
C = ThisWorkbook.Sheets("Heat Flows").Range("F3")
D = ThisWorkbook.Sheets("Heat Flows").Range("G3")
E = ThisWorkbook.Sheets("Heat Flows").Range("H3")
Temp = ThisWorkbook.Sheets("Heat Flows").Range("I3")
Bleh = MolarHC("K", "Gas", Temp, A, B, C, D, E)
End Sub
Function TK(Opt As String, Temp As Double)
If Opt = "C" Then
Temp = Temp + 273.15
ElseIf Opt = "K" Then
Temp = Temp
End If
End Function
Function MolarHC(Opt As String, Opt1 As String, Temp, A, B, C, D, E)
Dim TK As Double
Dim H As Double
TK = TK(Opt, Temp)
Select Case Opt1
Case "Gas"
H = A + B * Excel.WorksheetFunction.Power(((C / TK) / Excel.WorksheetFunction.Sinh(C / TK)), 2) + D * Excel.WorksheetFunction.Power(((E / TK) / Excel.WorksheetFunction.Cosh(E / TK)), 2)
Case "Liquid"
H = A + B * TK + C * Excel.WorksheetFunction.Power(TK, 2) + D * Excel.WorksheetFunction.Power(TK, 3) + E * Excel.WorksheetFunction.Power(TK, 4)
End Select
End Function
Function MassHC(Opt As String, Opt1 As String, Temp As Double, A As Double, B As Double, C As Double, D As Double, E As Double, MW As Double)
Dim H As Double
Dim MHC As Double
H = MolarHC(Opt, Opt1, Temp, A, B, C, D, E)
MHC = H / MW
End Function
ワークシート関数で呼び出されたときに関数が値を返すのにも問題があります。別の記事で述べたように、関数の名前を変数に変更してみましたが、予想される配列エラーでさらに問題が発生しました。