こんにちは、ヒガシです。
このページでは、エクセル上に配置されている直線図形の長さを計測する方法をご紹介していきます。
それではさっそくやっていきましょう!
エクセル上での距離の基準について
まずそもそもエクセル上での距離の基準についてご説明します。
セルの高さを調整するときに出る数値があると思いますが、これがまさにエクセル上での距離の基準です。
この場合セルの高さが20という数値に設定されています。
以降で紹介する直線の距離を測るプログラムで出力される結果も、基本的にはこの数値と同じ土俵で測られたものを出力することになります。
※列の幅を見る際に出力される数値とは土俵が異なりますのでご注意ください。
直線図形の長さを計測するサンプルコード
さっそくですが、以下がエクセル上にある直線図形の距離を測るVBAコードです。
今回はシート上にあらかじめ配置されているLine1という直線図形の長さを計測してみます。
Sub measure_length()
ActiveSheet.Shapes("Line1").Select
L_line = Sqr(Selection.Width ^ 2 + Selection.Height ^ 2)
MsgBox L_line
End Sub
やっていることは基本的に直線図形の横幅と高さから2乗のルートをとって距離に換算しているだけです。
サンプルコードの実行結果確認
それでは先ほどのコードを直線図形の配置を変えながら実際に実行してみましょう。
なお、先ほどもお見せした通り、今回はセルの高さはすべて20に設定しています。
この数値を基準に結果を見てみましょう。
まずは垂直方向に10セル文引っ張ってみましょう。
ほぼセルの高さ20×10セル分の約200という数値が出力されていますね。
次は直線を適当に45度くらい傾けてみましょう。
角度は目分量なので少し数値はずれますが、
セル高さ20×10セル分の200に、45度の確度分でルート2(≒1.4くらい)をかけた280程度の数値になっていることがわかります。
問題なく距離が出力されていますね。
おわりに
ということで今回はエクセルシート上に存在している直線図形の長さを計測するサンプルコードをご紹介しました。
このように、私のブログではエクセルスキルはもちろん、様々なプログラミングスキルを紹介しています。
ぜひ他の記事ものぞいてみてください。
コメント