HAMIchin仮面の土木・測量教室   Room 711  11回 


    Hokokaku() の中身

 


  Hokokaku() 関数の構造。

       Select Case 〜 End Select の話 続きます。

図11-1

  Function Hokokaku(dX, dY) As Double
     
Select Case dX
        Case Is > 0
           Hokokaku = 1
        Case Is = 0
           Hokokaku = 0
        Case Is < 0
           Hokokaku = -1
     End Select
  End Function


    dX=0 の 場合 の 動作


  前回の続きです。

  =Hokokaku(5,8) を =Hokokaku(0,8) に変更します。 プログラムは そのままです。(図11-1)

  セルの情報から dXに 0  、 dXに 8 が格納されました。

  次に CaseにdXの値が 格納されます。 Case=0 となります。

  Case=0 に当てはまる Select Case の条件は Case Is = 0 です。

     Case Is > 0 は条件が満たされないので 無視されます。

     次の Case Is = 0 の条件が一致するので

        真下の命令(仕事) " Hokokaku = 0 ” が 実行されます。  

        Hokokauの値を 「0」 にして A1のセルにHokokakuの値 「0」 を表示します。

     次の "Case Is < 0 " は満たされないので 無視されます。 
  
     End Select で 分岐命令を終了します。

  一連の流れは (図11-2) です。

   エクセル の "Sheet1" に戻って セル A1 に =Hokokaku(0,8) と打ち込んで
 
  " Enter " で セル A1 に 「0」 と表示されていることを 確かめてください。


図11-2   

    dX < 0 の場合の 動作
 
 

   =Hokokaku(-3,8)  に変更します。
 

  セルの情報から dXに -3  、 dXに 8 が格納されました。

  次に CaseにdXの値が格納されます。 Case=-3 となります。

  Case=-3 に当てはまる Select Case の条件は Case Is < 0 です。

     Case Is > 0 は条件が満たされないので 無視されます。

     次の Case Is = 0 は条件が満たされないので 無視されます  

     次の "Case Is < 0 " は満たされるいので 実行されます。 
   
        真下の命令(仕事) " Hokokaku = -1 ” が 実行されます。  

        Hokokauの値を 「-1」 にして A1のセルにHokokakuの値 「-1」 を表示します。
    
    End Select で 分岐命令を終了します。

  一連の流れは (図11-3) です。

  エクセル の "Sheet1" に戻って セル A1 に =Hokokaku(-3,8) と打ち込んで
 
  " Enter " で セル A1 に 「-1」 と表示されていることを 確かめてください。


図11-3
 
   


  Select Case 〜 End Select の 働きが少しわかったでしょうか。

  では、 なぜ方向角を求めるのに Select Case 〜 End Select 

  で条件分岐する必要があるのでしょうか

  方向角を求めるは dX 、 dY の値を 方向角= tan-1dY/dX の式

  に代入して 求めます。

  コンユーターは dY/dX を計算するとき  

  dX=0 では dY/0 となり 「dYを0で割ったので 計算出来ません。」 

  と 文句を言ってきて 計算してくれません。

  実験してみましょう  (図11-4) のように 打ち込んでください。

  
図11-4


  Function Hokokaku(dX, dY) As Double

      Hokoaku  =  dY / dX


  End Function










  実験です。  

   エクセルのセルA1 に  =Hokokaku(12,84) と 打ち込んでください。

                              セルA1には 7 と出るはずです

        


   では、エクセルのセルA1 に  =Hokokaku(0,84) と 打ち込んでください

                          セルA1には #VAULE! と出るはずです

         

  
   これでは(#VAULE!) 計算出来ません。

  dXが 0 になる場合 計算できなくなるエラーを防ぐため 

  dX=0 で計算を中止するようにしなければなりません。

  そのため dXが 「ゼロであるか、ゼロで無いか」 を判断しています。

  Select Case 〜 End Select を使う理由の一つ目がこれです。






  エクセルのファイル 「座標計算シート」 (有料) を用意しました。 
(図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