複雑なマクロ計算のプログラム
使用するデータは、エクセルのファイルで、3列n行あります
(下の値は適当です。値は2行目から)
x y t
7.4 8.3 6.2
1.0 2.7 3.9
5.8 4.7 3.6
・
・
・
・
・
・
マクロにて入力する変数は、d, hs, htの値です。
これらの値を入力して以下の関数 f(x,y,t)=c値を求め、
(x, y, t, c)の列で別のCSVファイルに保存する
例えば、(x,y,t)は、(x1,y1,t1)から(xn,yn,tn)まであるとします。
(x1,y1,t1)の時、
[step1]
Σα(Σの下にはi=1、上には、n)
i=1の時、
[step2]u,wを変数とします
(x1-xi)/hs=u1_1,
(y-yi)/hs=v1_1,
とする
(t-ti)/ht=w1_1
とする
[step3]L,M,N,P,Qを変数とします
{(u1_1)^2+(v1_1)^2}=L1
(w1_!)^2=M1
とする
もしも、(L1)<1 ならば、
(2/π)*{1-(L1)}=N1とする
そうでなければ、N1=0とする
もしも、(M1)<1 ならば、
(3/4)*{1-(M1)}=P1とする
そうでなければ、P1=0とする
(N1)*(P1)=Q1 とする
[step4]
次に、[step1]にもどりi=2の時で[step2]→[step3]と処理する。
その結果、Q2が求まる。
これを、i=nの時まで繰り返し、
Q1~Qnまでが求まる。
[step5]
Q1~Qnまでを全部足す。これをαとする。
足した値αに、1/{d*(hs^2)*ht} をかける。
出た値が、(x1,y1,t1)=c1である。
以上の、[step1]から[step5]まで繰り返し、(xn,yn,tn)=Cnまでもとめます。
C1からCnまでを、
別のエクセルファイルでx,y,tの隣の列に、書き込んでいき、保存。
という流れです。
これを、
マクロを記録することはできるのですが、
ファイルによって、x,y,tが何行もあるとなると、一貫してコーディングができないため、知恵をお貸しください。
よろしくお願いします。