[173]

BBS
BBS
mail to: adrs
旧
新
Diary INDEX
Geo日記
戻る
LIST
主目次

まだまだ有用!VBAユーザー定義函数
   曲線制限速度函数 Vrmax(R,W,C,A) とか

 ユーザー定義函数利用サンプルのメモを作成。VBAマクロについては様々な参考書、Webページがあり、数学に苦手意識を持ちズボラで詰め切った作業は苦手の私には到底手を出せないが、結構便利に使えるのに誰も触れない「ユーザー定義函数」なら、メモくらいは書けるだろうと作ってみた。(右の一覧参照。函数定義中で条件判断&分岐可能が他記事にない特徴である)。

ユーザー定義函数解説記事
(1).VBA函数雑伎
(1).a

L-123での函数定義法
Vrmax(R,W,C,G)
(1).bExcelでの函数定義法
PRX(r,Th),PRY(,), DDD(DMS)
(1).c函数定義中の条件判断と分岐
(1).d定義例 年金原価,ローン PV(,,)
(1).eNewton法:接線方程式の根更新試行
(1).f均等ローン&年金利率逆算 Intr(T,A,N)
(1).gモータ特性函数 kasoku(V,α,V1,V2)
(2).DEF FN函数活用ハンドブック
水島哲生 The BASIC'92/02〜/05連載
技術評論社
(3). Excel VBA 入門講座(勝手リンク)
  http://excelvba.pc-users.net/
 一般に考え得るほとんどの函数は表計算ソフトの組込み函数になっていて、ユーザーが自分で定義するものは残っていないかのようだが、設計・解析など現場での計算処理を洗うと、If Then Elseでこつこつ算出するよりもユーザー自身が函数に定義した方が良いもの、あるいは函数定義するしかないものが存在する。
 しかしながら、VBA(Visual BASIC for Apprications)マクロ全般の解説は多数あるが、函数定義法の解説はオンライン・マニュアルにはほとんど記載がないのだ。そればBASICのDEF FNとあまり変わらない。
 しかしVisual BASIC では函数定義が普通に用いられるし、FORTLANの演算型サブルーチンが実質的に函数だから、表計算などOfficeソフト組込のVBA利用を想定して、一般的解説の落ち穂拾いとして函数の作り方を整理しておく価値はあるだろう。
 FORTLAN出身者は別として、ソフト作成のアマチュアには多数派だったBASIC派には函数定義というのはかなり異種概念だし、VB派は函数を特に意識した複雑なものは作らない場合が多いと思う。

 表計算ソフトも'94〜'97年のVBA添付以来、多数の組込函数を準備したが、そのうち座標変換関係や三角形計算など数学系は'91年初の雑誌記事(DEF FN函数活用ハンドブック)に紹介されており、全方位ArcTAN(x,y)函数とか、均等ローンの利率計算法などが解析を含め具体的に掲載されている。函数のVBA中で条件判断と分岐が可能なら、N88BASICDEF FNでは定義できなかった均等ローン利率逆計算函数も定義でき、数少ない未定義汎用函数を自作ユーザー定義函数とできる訳である。
[函数形態例]
均等ローン利率=ri(借入,期毎返済,返済回数)
曲線速度制限 =Vrmax(半径,軌間,カント,横G)
(横G=0、カント=実カント+許容不足カントで算出)
全方位ATN [゚]=ACTAN(x,y)*180/pi()
度分秒 [゚]=DDD(度,分,秒)
加速度km/hs=kasoku(V,初α,V1,V2)
 古文書「DEF FN函数活用ハンドブック」(1991/01〜/04連載)を参考に均等ローン利率函数(=定額有期年金利率函数)を試作したところL-123でもExcelでも動作することが確かめられた。それは曲線制限速度計算など専門分野公式に加え、ローンや年金計算ソフトにまだ足らない部分であり、ここにupする。
    See→math/func/usrfunc.htm#Intr

70年著作権に較べて弱すぎのソフト&発明諸権利  <PS>

 表計算ソフトに後日追加された函数の中に「全方位アークタンジェント=ATAN2(x,y)という函数は、先出The BASIC誌記事「DEF FN函数活用ハンドブック」に1991年初に記載されたのが最初だと思うが、この著作権はどうなっているのだろう?この函数を多用する測量業界では7桁対数表の時代から動径の座標で4象限に分けて加減算で絶対方位を求めるのが標準作業だったから、ソフトとしてはそのままメモリー転写され、If Then Elseで合成されていた。論理式での一本化法は他には公表されてないはず。この函数はその後、Excel123に採り入れられ、JAVA Scriptにも ATAN2(y,x) と逆順パラメターで採り入れられたが、こうした処理方法のオリジナリティーは尊重されないのだろうか?映像の著作権保護期間が従前の50年から70年に延長されて安価DVD出版の可否を争った判決のニュースを聞いて、工業製品関係の特許・実用新案・ソフトの保護期間が7年〜15年、作者の権利は無いも同然の極端な格差は酷いものだと改めて思った。
 文系は闘って強大な権利を獲得し、理工系は未だ奴隷ということなのか?理工系にとっては「コロンブスのたまご」的要素もあり、またFORTLANの演算型サブルーチンは元々ローカル変数渡しで順序のみ守れば良く、変数名を問わないからその実態は函数そのものであって、どこまで保護すべきかの境界の検討は必要だが、特許・実用新案の多くは「コロンブスの卵」だ。論理式の真理数値活用で実現というのはオリジナルであり、1コピー制限などで過剰に保護して私的な利用もガチガチに制限している著作権との比較ではソフトにも何等かの保護が必要ではないか?当初アマチュア主導で開拓されたパソコンやオーディオ技術で大いに潤う業界やアーティストがその成果をタダで享受しながら恩人達の商業利用ではない私的利用までガンジガラメとしたばかりか、ダウンロードしたハードが壊れると実態として再度購入という極端に一方的な制度を強行しているのは、権利乱用ではないか?
   See→日記#144:地上デジタル放送


2007/12/25 23:55
旧
新
戻る