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
※コントロールは、セル R8 を 0°~ 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-2【VBAの利用例】
経度と緯度を個別に変化させるより、同時に変化させた方がおもしろいので、簡単な
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_正射図法_傾斜_回転_ローリング
あなたもジンドゥーで無料ホームページを。 無料新規登録は https://jp.jimdo.com から