7-4  VBAを利用して回転を楽しむ

 

  7-4-1 正射図法(赤道面)で経度を変化させ回転

           経度を -180゚~ 180゚の範囲で変化させ回転しているように見せます。

           まず正射図法の描画をします。そのファイルの中心経度のセルが以下に述べる

           マクロの操作セルを参照リンクに設定しておきます。

 

       VBAをセットする】

             Sub 経度操作()

             Dim I As Long

             Range("R8").Value = 0

              For I = 1 To 360

               Application.Wait [Now() + "0:00:00.05"]

               Range("R8").Value = I

              Next I

             Range("R8").Value = 0

             End Sub

         ※コントロールは、セル R80°~ 360°に変化させる。これで回転しているように

             見えるが、中心経度がわかるように表示セルを設置した。

 

        【作成例】

      ・中心経度表示セル(この例では M8)には、下式を記述しておく。

                  =IF(R8=0,"0",IF(R8>180,"西経"&-(R8-360)&"","東経"&R8&""))

 

【マクロの動作例を Youtube にアップロードしました】

   7-4-2 正射図法(傾斜面)で経度緯度を変化させ回転させる

               経度を -180゚~ 180゚、緯度を -90°~ 90°の範囲で変化させ回転しているように見せます。

               第1章で説明したように、ここでは「散布図」「」を使用します。

               まず正射図法の描画をします。そのファイルの中心経度、緯度のセルが以下に述べるスク

               ロールバーとマクロの操作セルを参照リンクに設定ておきます。

 

     7-4-2-1【スクロールバーをセットする】

           ・経度変化バーの設定----コントロ-ルセルは Q5

        <セルQ6>   =Q5-180  ←投影式の中心経度は、このセルを参照させる。

 

      ・緯度変化バーの設定----コントロ-ルセルは Q8

      <セルQ9>   =90-Q8   ←投影式の中心緯度は、このセルを参照させる。

 

  ・現在の経度緯度を表示させるため

          <セルB9>    =IF(Q6=0,"0",IF(Q6<0,"西経"&-Q6,"東経"&Q6&""))

          <セルB12>   =IF(Q9=0,"0",IF(Q9<0,"南緯"&-Q9,"北緯"&Q9&""))

 

  【スクロールバー作成例】

     スクロールバーの横にあるスケールは EXCEL のテキストボックスを利用しました。

 

【マクロの動作例を Youtube にアップロードしました】

  7-4-2-2VBAの利用例】

          経度と緯度を個別に変化させるより、同時に変化させた方がおもしろいので、簡単な

          VBAを作成してみた。

 

   7-4-2-2-1

●経度は連続的に変化させ、緯度は 90°で折り返す、そして -90°になったら再び折り

                返して 0°に戻る。つまり緯度を、ジグザグに変化させます。

                       作成例のマクロ起動ボタン⇒ [ 緯度ジグザグ ]

 

         Sub 経度緯度操作ジグザグ()

         Dim I As Long

          Range("R5").Value = 0

          Range("R7").Value = 0

          Range("R6").Select

           ActiveCell.FormulaR1C1 = "=IF(R[-1]C>180,R[-1]C-360,R[-1]C)"

           Range("R8").Select

           ActiveCell.FormulaR1C1 = _

           "=ROUND(IF(R[-1]C<91,R[-1]C,IF(R[-1]C<271,180-R[-1]C,R[-1]C-360)),0)"

           Range("R9").Select

           ActiveCell.FormulaR1C1 = "=R[-1]C"

            For I = 1 To 360

             Application.Wait [Now() + "0:00:00.05"]

             Range("R5").Value = I

             Range("R7").Value = "=90*SIN(RADIANS(" & I & "))"

            Next I

           Range("R5").Value = 0

           Range("R7").Value = 0

           End Sub

 

    7-4-2-2-2

        ●経度は連続的に変化させ、緯度は 90°~ -90°の間をサインカーブに類似させて

            変化させる。

                             作成例のマクロ起動ボタン⇒ [ 緯度スウィング ]

 

         Sub 経度緯度操作スウィング()

         Dim I As Long

         Range("R5").Value = 0

         Range("R8").Value = 0

         Range("R6").Select

          ActiveCell.FormulaR1C1 = "=IF(R[-1]C>180,R[-1]C-360,R[-1]C)"

         Range("R9").Select

          ActiveCell.FormulaR1C1 = _

          "=ROUND(IF(R[-1]C>180,R[-1]C-360,R[-1]C),0)"

          Selection.NumberFormatLocal = "0_ "

          For I = 1 To 360

           Application.Wait [Now() + "0:00:00.05"]

           Range("R5").Value = I

           Range("R8").Value = "=90*SIN(RADIANS(" & I & "))"

          Next I

         Range("R5").Value = 0

         Range("R8").Value = 0

         End Sub

 

   7-4-2-2-3

       ●経度と緯度を連続的に変化させる

           地球がローリングしている(スタート面から次第に裏返るような感じ)ような動きを

           します。

                            作成例のマクロ起動ボタン⇒ [ 緯度ローリング ]

 

         Sub 経度緯度操作ロール()

         Dim I As Long

         Range("R5").Value = 0

         Range("R8").Value = 0

         Range("R6").Select

          ActiveCell.FormulaR1C1 = _

          "=IF(R[-1]C>90,IF(R[-1]C<271,R[-1]C-180,R[-1]C-360),R[-1]C)"

          Range("R9").Select

           ActiveCell.FormulaR1C1 = _

           "=ROUND(IF(R[-1]C<91,R[-1]C,IF(R[-1]C<271,180-R[-1]C,R[-1]C-360)),0)"

           For I = 1 To 360

            Application.Wait [Now() + "0:00:00.05"]

            Range("R5").Value = I

            Range("R8").Value = I

           Next I

          Range("R5").Value = 0

          Range("R8").Value = 0

          End Sub

 

  【マクロ操作作成例】

 

【マクロの動作例を Youtube にアップロードしました】

 

  7-4-2-2-1_正射図法_傾斜_回転_ジグザグ

 

         7-4-2-2-2_正射図法_傾斜_回転_スウィング

 

        7-4-2-2-3_正射図法_傾斜_回転_ローリング