Home » エクセルマクロ・Excel VBAの使い方 » Shapesコレクション・Shapeオブジェクト » AddConnctorで色を指定する-Shape.Line.ForeColor

動作検証バージョン:Windows版Excel(バージョン1902 ビルド11328.20146)

「AddConnectorで色を指定する」
という検索キーワードに気が付きました。

どのアプリケーションかは不明ですが、
Shapesコレクションが持つAddConnectorメソッドで、

コネクターを追加して色を指定するには、どのようなコードを書けばいいのかを探していた方による検索です。

[スポンサードリンク]

Shapes.AddConnectorメソッドでは色を指定できない

最初に理解していただきたいのは、ShapesコレクションのAddConnectorメソッドでは、色を指定できないという仕様です。

オブジェクトブラウサーで確認すればわかるとおり、ShapesコレクションのAddConnectorメソッドには、種別(Type)と位置(BeginX, BeginY, EndX, EndY)を指定する引数しか渡せません。

色を指定したい場合、ShapesコレクションのAddConnectorメソッドが実行されると返される、コネクターを表すShapeオブジェクトを利用します。

コネクターを追加して色を指定するサンプルマクロ

以下のSubプロシージャを実行すると、アクティブなシートにコネクターが追加され、赤色になります。
Sub コネクターを追加して色を指定する()
 With ActiveSheet.Shapes.AddConnector(msoConnectorElbow, 0, 0, 100, 100)
  .Line.ForeColor.RGB = RGB(255, 0, 0)
 End With
End Sub

コネクターの色はLineFormatオブジェクトのForeColorプロパティで指定

コネクターの色は、ShapeオブジェクトのLineプロパティで取得できる、

LineFormatオブジェクトのForeColorプロパティを使って指定します。

LineFormatオブジェクトのForeColorプロパティは、ColorFormatオブジェクトを返しますから、そのRGBプロパティを使って指定しているのが、

上記のコードです。

ローカルウィンドウでオブジェクト変数の中身を確認しましょう

実務で使うマクロとしては、上記のようなWith文を使ったSubプロシージャで構いませんが、Shapeオブジェクトの操作に慣れていない方には、オブジェクト変数を使ったコードの形で確認することをおすすめします。
 Dim shp As Shape
 Set shp = ActiveSheet.Shapes.AddConnector(msoConnectorElbow, 0, 0, 100, 100)
 shp.Line.ForeColor.RGB = RGB(255, 0, 0)

上記のようなコードにしてステップ実行し、拙著『いちばんやさしいExcel VBAの教本』でも多用しているとローカルウィンドウで、オブジェクト変数shpの中身を確認しておきましょう。

今回はコネクターの色を指定したいわけですから、

Lineプロパティ・ForeColorプロパティを見ておきましょう。

最終更新日時:2019-08-22 10:12

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » Shapesコレクション・Shapeオブジェクト » AddConnctorで色を指定する-Shape.Line.ForeColor

「Shapesコレクション・Shapeオブジェクト」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.