VBA – VBAでゴールシークを使う
Last updated on 7月 3, 2022
In this Article
このチュートリアルでは、VBAでゴールシークを使用する方法について説明します。
ゴールシークは、Excel で利用できる What -if 分析ツールの一つで、数式に異なる値を適用してその結果を比較することができます。
ゴールシークの構文
ゴールシーク関数は、ゴール(変更したいセル)と ChangingCell(変更するセル)の2つの引数を持ちます。 この関数は、True または False を返します – ゴールが見つかった場合は True、ゴールが見つからなかった場合は False を返します。
VBAでゴールシークを使用する
以下のワークシートを考えてみましょう。
期間を月単位で変更して、毎月必要な返済額を変更するには、次のようなプロシージャを書きます。
Sub IncreaseTerm()
'B5を変化させてB6を100にする
Range("B6").GoalSeek Goal:=100, ChangingCell:=Range("B5")
End Sub
セルB6に数式、セルB5に値が必要なことに注意してください。
If文でゴールシークを使う
ゴールシークをIf文と一緒に使って、コードの流れを誘導することもできます。
Sub IncreaseTerm()
'B5を変化させてB6を100にし、ユーザーにメッセージを返す
If Range("B6").GoalSeek(Goal:=100, ChangingCell:=Range("B5")) = True Then
MsgBox "新しい返済期間を算出しました"
Else
MsgBox "新しい返済期間を算出できませんでした"
End If
End Sub