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


    Hokokaku() の中身

 


  Hokokaku() 関数の構造。

  Hokokaku() 関数の構造は (図10-1) です。

図10-1

   Function Hokokaku(dX, dY) As Double
      Select Case dX
        Case Is > 0
          Select Case dY
            Case Is > 0
              Hokokaku = Atn(dY / dX)
            Case Is = 0
              Hokokaku = 0
            Case Is < 0
              Hokokaku = 2 * pi + Atn(dY / dX)
          End Select
       Case Is = 0
         Select Case dY
           Case Is > 0
             Hokokaku = 1 / 2 * pi
           Case Is = 0
             Hokokaku = 0
           Case Is < 0
             Hokokaku = 3 / 2 * pi
         End Select
       Case Is < 0
         Select Case dY
           Case Is > 0
             Hokokaku = pi + Atn(dY / dX)
           Case Is = 0
             Hokokaku = pi
           Case Is < 0
             Hokokaku = pi + Atn(dY / dX)
         End Select
     End Select
   End Function












   上の内容(図10-1) を解りやすくするため (図10-2) のように 書き換えます。

   見た目はずいぶん違うようですが 基本的には同じ事です。 

   順を追って説明するには、これくらいから始めます。

   
   まずは、(図10-2)の通り Visual Basic エディターで 手でキーボードから入力して下さい。

   簡単ですので 間違わずに 打ち込んでみてください。 End Functionで 終りです。

   実験用の Hokokaku 関数が出来上がります。 (図10-2、図10-3)


図10-2   
図10-3
  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

図10-4








 このプログラムの目的は

       dXの値が 正(+)の数字であるか
       dXの値が  0(±)のであるか
       dXの値が 負(-)の数字のであるか を判断して。

  そして dXの値が 正(+)の数字であれば エクセルのセルに 「1」を表示させます。
       dXの値が 正(+)の数字であれば エクセルのセルに 「0」を表示させます。
       dXの値が 正(+)の数字であれば エクセルのセルに 「-1」を表示させます。 
                                      
                             (図10-3)

  まず、エクセルのシートの セルA1 に キーボードから

  =Hokokaku(5,8)  と 打ち込んで  (図10-5) Enter して下さい。

  セル A1 に 1 (図10-6) と出るはずです。 

  もし 出なければ。 Visual Basic エディター(図10-2)を 調べてください。 

  どこかが 間違っています。 文字が1字でも違っていると正しく働きません。

図10-5
図10-6






 

 
  =Hokokaku(5,8) の (5、8) の 
                        5 が dXの値 
                        8 が dYの値です

  なぜかと言うと、 Function Hokokaku(dX, dY) As Double で

   Hokokaku( のカッコの後に続く 「dXが変数だ」 と宣言しているからです 
  
   同じく dXの 後に(、) コンマで区切って 「dY も変数ですよ。」 と宣言しているからです。

  =Hokokaku(5,8) Enter で ます最初に dXに 5 の値をおぼえます 

  続いて dYに 8 をおぼえこみます。 もう少しかっこよく表現しますと

  「変数dX に 5 を格納する。」 と言います。 これからは このように表現します。

  Function Hokokaku(dX, dY) As Double  の次は  Select Case dX です。 


  「変数Case dXの値を格納します。」 と言う意味です。 

  しかしこれでは何の意味かわかりません。

  Select Case は [条件分岐] と言う特別な命令です。

  Select と Case は 一体の命令です。 どちらを省略しても 命令は実行されません

  Caseの後には 変数の名前を書きます この場合は dXが 変数です。

  Case=dX なのですが、Case と dXが 同じ物なのだから Select dX

  とすれば ややこしくないと思いますが うまく理屈が合いません。

  Case には 別の命令を持っているため 正しい仕事をするのには どうしても

  Case でなければうまく行きません。

  そのため dXの値を 変数Case に格納しなければならないのです。 












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

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

        Case Is > 0
        Case Is = 0
        Case Is < 0
    End Select

 Select Case 〜 End Select の間に 3つの条件が書かれています。
  
   1番目 は Caseの値が ゼロより大きいとき (0以外の正の数字)
   2番目 は Caseの値が ゼロのとき       (0のとき)
   3番目 は Caseの値が ゼロより小さいとき  (0以外の負の数字)
 
  Caseの値は 3の条件に必ず当てはまります。

  Selectは Case がどの条件に当てはまるかを調べて 選び出して

  仕事をする命令なのです。 

  このように条件によって仕事の流れを変える命令を「条件分岐」と呼びます、

  条件分岐はまだ何種類かあります。


  今、 dX=5ですから Case=dX=5 です。

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

  後の2条件は無視されます。
  
      Case Is > 0
          Hokokaku = 1 
      Case Is = 0           
       
  Case Is > 0 の真下の命令(仕事) " Hokokaku = 1 ” が 実行されます。 
  
  Hokokauの値を 「1」 にして A1のセルにHokokakuの値 「1」 を表示します。
  
  次の条件 "Case Is = 0 " の一つ上の行まで 命令を実行します。 
  
  命令を実行し終わると 他の条件の命令を無視して End Select まで行って 

  分岐命令を終了します。 

  一連の流れは (図10-7) です。 最初の Case>0 で条件が満たされたので

  後 2つの条件に合わないので 次々に無視して 終了しています。
  
  分岐の条件は (図10-4)のようになります。



図10-7



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