Excel VBA 選択セル範囲の中心に列方向で両端矢印の線を引く

スポンサーリンク

選択セル範囲の中心に列方向で両端矢印の線を引く方法

例えば、勤務スケジュールやタイムスケジュール表をExcelで作成するときにスケジュールの範囲を両端矢印の線で表示する場合があると思います。

通常はオートシェイプを挿入して、その範囲に合わせてシェイプ配置をすることになりますが、セルの範囲にピッタリと合わせるのが手間だったりします。

そこで、選択したセル範囲の中心に列(縦)方向で両端矢印の線を自動で引くコードをご紹介します。

選択したセル範囲の中心に行(横)方向で両端矢印の線を自動で引くコードについてはこちらをご覧ください。

実行イメージ

セル範囲を選択します。

コードを実行します。

選択セル範囲の中心に列方向の両端矢印線が作成されました。


セルの枠線に合わせて両端矢印線を引く場合は
線を引く枠線が中心になるように両端のセルを選択します。


コードを実行します。

枠線に合わせて両端矢印が作成されました。


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

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

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

選択セル範囲の中心に列方向で両端矢印の線を引くコードと解説

Sub 列矢印()
Dim R As Range
Set R = Selection
With ActiveSheet.Shapes. _
AddLine(R.Left + R.Width / 2, R.Top, R.Left + R.Width / 2, R.Top + R.Height).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行目~5行目【With ActiveSheet.Shapes. _
AddLine(R.Left + R.Width / 2, R.Top, R.Left + R.Width / 2, R.Top + R.Height).Line】

Shapes【シェイプス】コレクションのAddLine【アドライン】メソッドで、Shape【シェイプ】(線)オブジェクトを追加して取得しさらに、Line【ライン】プロパティで線の書式を表す
LineFormat【ラインフォーマット】オブジェクトを取得してWith【ウィズ】ステートメントで指定します。AddLineメソッドの引数は
左端からの線の始まり位置
上端からの線の始まり位置
左端からの線の終わり位置
上端からの線の終わり位置
の順でポイント単位で指定します。ポイントの取得は、変数「R」に代入されたセルまたは、セル範囲を基準にRange【レンジ】オブジェクトのLeft、Top、Width、Heightプロパティで取得します。


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


7行目【.Style = 1】
同じくwith【ウィズ】ステートメントで指定した、線の書式を表す、LineFormat【ラインフォーマット】オブジェクトのStyle【スタイル】プロパティを使用して線のスタイルを1の実線に指定します。


8行目【.BeginArrowheadStyle = 3】
LineFormat【ラインフォーマット】オブジェクトのBeginArrowheadStyle【ビギンアロースタイル】プロパティを使用して、線の始点の矢印のスタイルを3の開いた矢印に設定します。


9行目【.EndArrowheadStyle = 3】
LineFormat【ラインフォーマット】オブジェクトのEndArrowheadStyle【エンドアロースタイル】プロパティを使用して線の終点の矢印のスタイルを3の開いた矢印に設定します。


10行目【.Weight = 3】
LineFormat【ラインフォーマット】オブジェクトのWeight【ウエイト】プロパティを使用して線の太さを3に指定します。


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

スポンサーリンク

関連記事・広告