利率がユーザーから提供された 2 つの入力に依存する償却テーブルを作成しようとしています。
X は行を表し、Y は列を表します。X、Y、および金利の値は、4 X 6 のテーブルに既に設定されています。たとえば、ユーザーが X=2 と Y=3 を入力した場合、利率は 5% と決定されます。
IF 関数は機能しますが、多くの時間がかかり、効率的ではありません。
配列の使用を検討しましたが、Vlookup が最も効率的だと思います。Excel では、Vlookup を Match と共に使用しましたが、うまくいきましたが、VBA コードに変換するのに苦労しています。
Option Explicit
Sub Amortisation()
Dim intRate, loanLife, initLoanAmt
Dim yrBegBal, intComp, prinComp, yrEndBal, annualPmt
Dim outRow, rowNum, outsheet
outRow = 3 'output table begins from row 4
outsheet = "loan amort"
Worksheets(outsheet).ActivateDo
loanLife = InputBox("Enter loan life." _
& " Loan life must be a whole number")
If loanLife < 0 Or (loanLife - Round(loanLife) <> 0) Then
MsgBox ("Loan life must be a whole number.")
End
End If
initLoanAmt = InputBox("Enter loan amount." _
& " Loan amount must be a positive whole number")
If initLoanAmt < 0 Or (initLoanAmt - Round(initLoanAmt) <> 0) Then
MsgBox ("Loan amount must be a positive whole number.")
End
End If
End Sub
他の入力で行ったように金利を要求するのではなく、VBA が与えられた入力を使用して、下の表から金利を選択するようにします。
したがって、X (ローン期間) が 5 で Y (initloanamount) が 700 の場合、VBA でレートとして 10 を使用する必要があります。
この後、PMT 関数を使用して償却テーブルを続行できます。