こんにちは、ヒガシです。
このページでは、以下の画像に示すように直線図形を少しずつ回転させることによって簡易的な分度器を作成する方法をご紹介していきます。
上記の画像のように刻み確度も自由に変更可能です。
それではさっそくやっていきましょう!
VBA上で直線を作成する方法
まずは基礎スキル紹介として、VBA上で直線図形を作成する方法をご紹介します。
ActiveSheet.Shapes.AddConnector(msoConnectorStraight, x1, y1, x2, y2).Select
上記のx1,y1,x2,y2の部分に直線の始点、終点のX,Y座標を入力すればOKです。
VBA上で簡易分度器を作成する方法
冒頭に紹介した簡易的な分度器を作成するには、先ほど紹介した直線図形を作成する際にすこしずつ角度を変えながら始点、終点が円周上に配置されるように調整していけばOKです。
中学校でならった三角関数を地道に適用していくだけですね。
分度器を作成するサンプルコード
それでは前置きはこのくらいにして実際のコーディングに入っていきましょう。
以下が冒頭に紹介した簡易分度器を作成するVBAコードです。
Sub Macro1()
center = 200
r = 50
delta_deg = 5
num_loop = (360 \ delta_deg) / 2
For i = 1 To num_loop
deg = delta_deg * i
startx = center - r * Cos(deg * (2 * 3.141592) / 360)
endx = center + r * Cos(deg * (2 * 3.141592) / 360)
starty = center - r * Sin(deg * (2 * 3.141592) / 360)
endy = center + r * Sin(deg * (2 * 3.141592) / 360)
ActiveSheet.Shapes.AddConnector(msoConnectorStraight, startx, starty, endx, endy).Select
Selection.ShapeRange.Line.ForeColor.ObjectThemeColor = msoThemeColorText1
Next
End Sub
センター位置(center)や分度器の大きさ(r)はあなたの好きなように変更可能です。
またdelta_degで各線の回転角度を指定可能です。
おわりに
というわけで今回はエクセル上に簡易的な分度器を作成する方法をご紹介しました。
画像上でざっくり角度を測る際などにぜひご活用ください。
このように、私のブログではエクセルスキルはもちろん、様々なプログラミングスキルを紹介しています。
ぜひ他の記事ものぞいてみてください。
コメント