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】
BiginArrowheadStyle【ビギンアローヘッドスタイル】プロパティで
線の始まりの矢印とスタイルを設定しています。


8行目
【.EndArrowheadStyle = 3】
EndArrowheadStyle【エンドアローヘッドスタイル】プロパティで
線の終わりの矢印とスタイルを設定しています


9行目
【.Weight = 3】
Weight【ウエイト】プロパティで線の太さを設定しています。


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

スポンサーリンク
スポンサーリンク

フォローする

スポンサーリンク
スポンサーリンク