Excel VBA 選択範囲のセルの真ん中に両端矢印の線を引く

スポンサーリンク

選択範囲のセルの真ん中に両端矢印の線を引く方法

Excelで下のイメージのような出勤予定表や工程表を作成するとき、セル範囲に両端矢印の線を引くことがあると思います。



Excelでの通常操作では、「挿入」メニューの「図形」から両端矢印のシェイプを挿入し、セルに合わせて配置しますが、結構面倒で時間がかかることがあります。

そこで、VBAを利用して、下のイメージのようにセル範囲を選択して、そのセル範囲の中心の高さの位置に両端矢印を自動的に挿入するコードをご紹介します。

実行イメージ



※列(縦)方向に両端矢印線を引くコードはこちらをご覧ください。

ワークシートに両端矢印線を挿入する方法

ワークシートに線を挿入するには、Shapes【シェイプス】コレクションAddLine【アドライン】メソッドを使用します。

AddLine【アドライン】メソッドで作成したShapeオブジェクト(線)に対してLine【ライン】プロパティで、線の書式設定をするためのLineFormat【ラインフォーマット】オブジェクトを取得して線に矢印や色太さの書式を設定します。

選択したセル範囲の真ん中の高さに両端矢印の線を挿入するコードと解説

Sub 矢印()
Dim R As Range
Set R = Selection
With ActiveSheet.Shapes.AddLine(R.Left, R.Top + R.Height / 2, R.Left + R.Width, R.Top + R.Height / 2).Line
.ForeColor.RGB = RGB(0, 0, 255)
.Style = 1
.BeginArrowheadStyle = 3
.EndArrowheadStyle = 3
.Weight = 3
End With
End Sub
2行目【Dim R As Range】
選択セル範囲を格納する変数「R」をオブジェクト型(Range)で宣言します。


3行目【Set R = Selection】
オブジェクト型変数「R」にSetキーワードを使用して選択されているセルをSelection【セレクション】プロパティで取得して
代入しています。


4行目【With ActiveSheet.Shapes.AddLine(R.Left, R.Top + R.Height / 2, R.Left + R.Width, R.Top + R.Height / 2).Line】
Shapes【シェイプ】オブジェクトのAddLine【アドライン】メソッドで線を作成しShape【シェイプ】オブジェクトを取得して、Line【ライン】プロパティで線の書式設定をするためのLineFormat【ラインフォーマット】オブジェクトを取得し、With【ウィズ】ステートメントで指定します。
AddLine【アドライン】メソッドの引数についてはこちらをご覧ください。


5行目【.ForeColor.RGB = RGB(0, 0, 255)】
With【ウィズ】ステートメントで指定したLineFormat【ラインフォーマット】オブジェクトに対してForeColor【フォアカラー】プロパティとRGB関数を使用して線に色を設定しています。青を指定していますが、色を変更する場合はRGB値を変更してください。


6行目【.Style = 1】
線のスタイルをStyle【スタイル】プロパティで指定しています。線のスタイルの種類についてはこちらをご覧下さい。


7行目【.BeginArrowheadStyle = 3】
With【ウィズ】ステートメントで指定したLineFormat【ラインフォーマット】オブジェクトのBiginArrowheadStyle【ビギンアローヘッドスタイル】プロパティで線の始まりの矢印とスタイルを設定しています。


8行目【.EndArrowheadStyle = 3】
With【ウィズ】ステートメントで指定したLineFormat【ラインフォーマット】オブジェクトのEndArrowheadStyle【エンドアローヘッドスタイル】プロパティで線の終わりの矢印とスタイルを設定しています


9行目【.Weight = 3】
With【ウィズ】ステートメントで指定したLineFormat【ラインフォーマット】オブジェクトのWeight【ウエイト】プロパティで線の太さを設定しています。

以上で、選択範囲のセルの真ん中に両端矢印の線を引くについての解説を終了します。ありがとうございました。

スポンサーリンク

関連記事・広告