HAMIchin仮面の土木・測量教室   Room 711   第9 


   ToraX” 、”ToraY”  関数の マクロの内部へ入ります。 続き

 


  Hokokaku() 関数の構造。

  ToraX() 関数が仕事をするには。 Hokokaku() 関数の助けが必要です。
  
  Hokokaku() は 2点間の 方向角を求める 関数です。

  Hokokaku() の VBA は(図9-1) です。

  エクセルファイル  「座標計算シート」  の ビジュアルベーシック の標準モジュール1に

  書き込まれています。 

  「座標計算シート」 を手に入れる方法は最後を見て下さい。

   第6回目を参考に VBA エディターを 立上げて (図9-1)の通り キーボードから打ち込んでも

   同じ結果が得られます。

図9-1










  一番上の Const pi = 3.14159265358979 はこれから、計算に使う 

  π (円周率 : パイ) の値をコンピューターに教えています。

  「p i 」 は π の仮の名前です。 Module1のVBAプログラムの中で 「p i 」 とあれば 

  即座に 3.14159265358979 の数字であると判断します。

  π  は計算する中で頻繁に使います。 わざわざ pi と名前を付けなくても、

  計算のたびごとに 3.14159265358979 と 打ち込んでも良いのですが

  めんどくさいのと間違えやすいので

  pi = 3.14159265358979 と コンピューターに伝えて、 手間を省いています。


  Const pi = 3.14159265358979  の 「Const」 は 

  コンピューターに 「今から  "p i " の 名前に数字をあてはめますよ。」 という命令です。

  VBA では 「定数を宣言する」 と 言います。

  Const には 決まった約束事が あります。

  Const の後には 定数の 名前を 書きます  「p i 」 が 定数の名前です。 

  名前の 後に =から始まる 数字を 書きます。 = 3.14159265358979 がその部分です。

  これで 定数の宣言が終わります。 いったん宣言された名前は たった一つの数字だけを

  覚えていて、 名前が Module1のVBA の中で使われるたびに 覚えこんだ数字を呼び出して 

  計算に使います。

  Const pi = 3.14159265358979 と一旦宣言してしまえば。 VBAの途中で 「p i 」の値を

  他の数字に変えることは 許されません。 もし変えようとすると エラーになります。


  π=3.14 でも計算は出来ますが 計算精度は保証されません。

  少なくても π = 3.14159265358979 くらいは 必要です。 

  今のコンピュターならこれくらいの数字の計算は楽々やってのけます。



H
o
k
o
k
a
k
u
()





  Const pi = 3.14159265358979  と 円周率 π の宣言が終わったら。

  Hokokaku()関数を 書き込みます。

  まず、 2,3行下に Function Hokokaku(dX, dY) As Double と打ち込みます。 (図9-2)

  Enter キー と同時に入力が完了して、自動的に End Function が 打ち込まれます。

  これで Hokokaku() 関数がVBA に登録されました。 (図9-3)
 
図9-2
Enter キーをたたくと


図9-3   End Functionが自動的に現れる。
 
F
u
n
c
t
i
o
n

H
o
k
o
k
a
k
u

(
dX,

dY
)



  Hokokaku(dX, dY) は 2個の座標の方向角を計算する 関数です。

  今まで説明してきたように 機械点を中心に 視準点の方位角を計算します。 

  そして、方向角を求めることで座標の計算が出来ます。

  Function Hokokaku(dX, dY) の Functionは 「Hokokaku は VBAで書かれた関数ですよ。」

  とコンピューターに教える 命令です。 必ず End Function と伴います。 

  もし、"End Function"が無ければ。 Hokokaku(dX, dY) がどこで終りかわかりません。 

  始りの挨拶があって、 終りの「さよなら」があるわけです。


  Hokokaku(dX, dY) のカッコの中の dX dY は 「引き数」 と呼ばれる データーです。

  方向角を求めるには 機械点座標(X座標、Y座標)、 視準点座標(X座標、Y座標)

  のデータが無ければ計算出来ません。

  dX dY は (、) で区切ります。 この区切りは 「dX と dY は別のデーターです。」と分ける意味

  と 「dX が先で dY が後です。」 と読み取る順番も示しています。

     dX=視準点X座標−機械点X座標

     dY=視準点Y座標−機械点Y座標 のことです。 

  第4回目を参照してください。 dXはΔX dYはΔY のことです。


  Function Hokokaku(dX, dY) As Double  の As Doubleは 

  計算した方向角は 「倍精度浮動小数点数型 (Double) の数字です」 

  と宣言しています。

  方向角はdX dYの値によってどのような方向角の値になるかわかりません、

  このように 自由に変化する数字を 「変数」と呼んでいます。

  変数には いろいろな形があります。変数がなんでもありではコンピュータの

  計算能力に影響しますので 変数を細かく種類分けして、

  不必要な負担を掛けないよう注意してプログラムを組んでいます。 

  そのために 「変数を宣言する」 必要があります。 

  方向角は 計算精度を高めるため コンピューターの計算能力を犠牲にして

  あえて、倍精度浮動小数点数型 (Double)と言う一番多くの桁数を扱える数字を使っています。


 


  次回は Hokokak() の仕組みへと進みます。




  エクセルのファイル 「座標計算シート」 (有料) を用意しました。 
(図5-3)

  このファイルで ToraX、 ToraY 関数のマクロが完全に表示されます。

      トラバー計算、逆トラバー計算を一つの画面で処理する標準フォーム

      標準フォームページを即、使うための解説

      VBA による 座標関連関数 のリソース(プログラム)の公開 

     ● Hokokaku(dX, dY)の完全な動作, と記述を含みます。 

      リソースの解説のための計算例

      プログラム作成のための補足説明

                      が含まれています。

   この講座は 順次回を重ねていくと 最終的には 「座標計算シート」が出来上がります。

   前もって 「座標計算シート」を手元に置かれて 参考にしながら 実際に作動させて
     確認していただくと よりいっそう理解しやすいです。

   また、本講座と 「座標計算シート」があれば 本格的な、座標計算やVBAの教材としても
     十分に活用できるものと考えております。


     テキストファイル入手方法は下欄でお確かめ下さい。




    ”エクセル” ファイル 「座標計算シート」 申し込み方法

      ファイル代金 ¥2,000円 を下記の銀行に振り込んで下さい。

   恐れいりますが、 メールにて

        ファイルの送り先のメールアドレス

        あなたの名前 (お名前がわからないと振込みの確認ができません)

                   以上をお知らせください。

    確認ができしだい メールにてファイルを送らせていただきます。
    もし、1週間経ってもファイルが届かない場合、お叱りのメールを下さい。直ちに対処いたします。

     連絡先メール   mt7116@mandala.ne.jp

     振込み先

         阿波銀行山川支店(店番号406)
         普通預金
         口座番号  1034509
         永井 俊   (ナガイ タカシ)

         ファイル代金 ¥2,000円



   back to  room 711 top     goto e-school top