VBA – VBAでゴールシークを使う

Written by

Mel Jenkins

Reviewed by

Steve Rynearson

Translated by

masahiro yoshida

Last updated on 7月 3, 2022

このチュートリアルでは、VBAでゴールシークを使用する方法について説明します。

ゴールシークは、Excel で利用できる What -if 分析ツールの一つで、数式に異なる値を適用してその結果を比較することができます。

ゴールシークの構文

vba goal seek syntax ゴールシーク

ゴールシーク関数は、ゴール(変更したいセル)と ChangingCell(変更するセル)の2つの引数を持ちます。 この関数は、True または False を返します – ゴールが見つかった場合は True、ゴールが見つからなかった場合は False を返します。

VBAでゴールシークを使用する

以下のワークシートを考えてみましょう。

vba goal seek example 1 before

期間を月単位で変更して、毎月必要な返済額を変更するには、次のようなプロシージャを書きます。

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

vba goal seek if statement ゴールシーク

vba-free-addin

VBA Code Examples Add-in

Easily access all of the code examples found on our site.

Simply navigate to the menu, click, and the code will be inserted directly into your module. .xlam add-in.

(No installation required!)

Free Download

Return to VBA Code Examples