この記事では、以下の画像のようにエクセルシート上に等間隔の図形線を一括配置するVBAコードをご紹介していきます。
線の間隔や長さ、色や太さまで、あなたの状況に応じて自由に変更できるようになっています。
横方向に配置する方法、縦方向に配置する方法にわけて解説していきます。
それではさっそくやっていきましょう。
横方向に等間隔で線図形を一括配置する方法
まずは先ほどの画像で紹介したように横方向に等間隔で一括配置するVBAコードをご紹介します。
Sub Macro1()
Dim i As Integer
Dim p_line As Integer, l_line As Integer, w_line As Integer
p_line = 20
l_line = 200
w_line = 3
color_line = RGB(255, 0, 0)
With ActiveSheet.Shapes
For i = 1 To 10
.AddConnector(msoConnectorStraight, i * p_line, 1, i * p_line, l_line).Select
With Selection.ShapeRange.Line
.ForeColor.RGB = color_line
.Weight = w_line
End With
Next
End With
End Sub
こいつを実行すると冒頭にご紹介したように以下のような状況になるはずです。
すこしコードの解説をしておきましょう。
先ほどのコード内の変数は以下の通りです。
p_line:一本、一本の線の間隔
l_line:一本の線の長さ
w_line:一本の線の太さ
color_line:線の色
なお、線の色はRGB形式で指定してあげます。
RGBがよくわからないという人は以下の記事を参考にしてください。
【VBA】セルの背景色&文字色を変更する方法!RGB概念から解説!
参考までに変数を以下に変更してもう一度実行してみましょう。
p_line=50
l_line=30
w_line=1
color_line=RGB(0, 0, 0)
以下が実行結果です。
線の色、太さ、間隔、長さすべて変更されていることがわかると思います。
あなたの状況に応じて適宜変数を変更しましょう。
縦方向に等間隔で線図形を一括配置する方法
次は縦方向に一括配置する方法です。
Sub Macro2()
Dim i As Integer
Dim p_line As Integer, l_line As Integer, w_line As Integer
p_line = 20
l_line = 200
w_line = 3
color_line = RGB(255, 0, 0)
With ActiveSheet.Shapes
For i = 1 To 10
.AddConnector(msoConnectorStraight, 1, i * p_line, l_line, i * p_line).Select
With Selection.ShapeRange.Line
.ForeColor.RGB = color_line
.Weight = w_line
End With
Next
End With
End Sub
こいつを実行すると以下のようになりました。
変数に関しては先ほどと考え方は同じです。
また、横、縦をどちらも実行することで以下のような格子状にもすることができますね。
工夫すればいろんなことができそうですね。
ぜひ遊んでみましょう。
おわりに
というわけで今回は線図形を等間隔に配置する方法をご紹介しました。
画像の上に配置することで画像の中の物体の長さを測ったりできそうですね。
ぜひ状況に応じてご活用ください。
また、以下の記事ではフリー曲線をVBAで配置する方法もご紹介しています。
興味があればご覧ください。
【エクセルVBA】フリー曲線できれいなSIN(COS)カーブを描く方法!
このように、私のブログではエクセルスキルはもちろん、様々なプログラミングスキルを紹介しています。
今は仕事中で時間がないかもしれませんが、ぜひ通勤時間中などに他の記事も読んでいただけると嬉しいです。
⇒興味をもった方は【ヒガサラ】で検索してみてください。
確実にスキルアップできるはずです。
最後に、この記事が役に立ったという方は、ぜひ応援よろしくお願いします。
↓ 応援ボタン
それではまた!
コメント