共通変数を使う(Public変数を使いこなそう)弛度計算-弛度計算-
Fanctionプロシージャでは計算結果の一つの変数しか返せません。
プロシージャ内で使う変数はPublicで宣言することで共通変数として扱えます。
弛度計算プログラムを例に使い方を見てみましょう。

標準モジュールの先頭に「Public」の後に変数名を指定していきます。
「Public Const」とした場合は、そのまま値も設定できます。

弛度計算ブックでは「電線定数シート」があり、計算したい線種を番号で指定する事によりPublic変数にデータを読み込みます。

「データ読込」のプロシージャは変数にデータを入れるだけで、戻り値を必要としないため「Sub プロシージャ」としています。
Noによって読み込まれる行Noが変わります。
電線定数シートは「Sheet2」のため、「Gyuryo = Sheet2.Cells(2 + No, 2)」のように指定します。Cells(行,列)で指定します。
セルが変わらないものは「LTmp(0) = Sheet2.Range("J2")」と指定します。

「乙種張力」は架線時の張力を求めるプロシージャで、電線径種No、スパン、外気温を与えると計算します。
スパン、外気温を変数に読込、データを読み込みます。
「Call」はSubプロシージャを呼び出す宣言ですが、省略可能です。後から見てわかりやすくするため省略していません。

張力の計算は、電線の張力による伸びとの釣り合いを求める必要があり、赤枠の計算がそれで、繰り返し計算を行ないます。

繰り返し計算を行なっているのが「f2」プロシージャ
初期値として「f2 = 10」と仮定した後「f2 ^ 2 * (f2 - K_atE) > M」とにる条件にf2値を仮設定します。
その後、誤差が0.001以下になるまで繰り返し計算しますが、最初の仮設定でMの2倍以内にf2を設定しているため、
最初は STp = f2 /2 とし、大小を比較しこれを足したり引いたり、
2回目以降は STp = STp / 2 とすることで最小回数で探しています。
真ん中より大きいか小さいか?、さらに真ん中より大きいか小さいか?、さらに真ん中より大きいか小さいか?・・・・これを繰り返して探します。

シート上では7行目にあるような形で使用します。
気温や径間長を変数として、グラフを簡単に描くこともできます。
