【エクセルVBA】直線図形の長さを計測する方法!サンプルコードで実演

こんにちは、ヒガシです。

 

このページでは、エクセル上に配置されている直線図形の長さを計測する方法をご紹介していきます。

 

それではさっそくやっていきましょう!

 

スポンサーリンク

エクセル上での距離の基準について

まずそもそもエクセル上での距離の基準についてご説明します。

セルの高さを調整するときに出る数値があると思いますが、これがまさにエクセル上での距離の基準です。

この場合セルの高さが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に設定しています。

セルの高さを20に設定している様子

この数値を基準に結果を見てみましょう。

 

まずは垂直方向に10セル文引っ張ってみましょう。

垂直の直線図形の距離を計測した結果

ほぼセルの高さ20×10セル分の約200という数値が出力されていますね。

 

次は直線を適当に45度くらい傾けてみましょう。

斜めの直線図形の距離を計測した結果

角度は目分量なので少し数値はずれますが、

セル高さ20×10セル分の200に、45度の確度分でルート2(≒1.4くらい)をかけた280程度の数値になっていることがわかります。

 

問題なく距離が出力されていますね。

 

スポンサーリンク

おわりに

ということで今回はエクセルシート上に存在している直線図形の長さを計測するサンプルコードをご紹介しました。

 

このように、私のブログではエクセルスキルはもちろん、様々なプログラミングスキルを紹介しています。

ぜひ他の記事ものぞいてみてください。

コメント

タイトルとURLをコピーしました