「AddConnectorで色を指定する」
という検索キーワードに気が付きました。
どのアプリケーションかは不明ですが、
Shapesコレクションが持つAddConnectorメソッドで、
コネクターを追加して色を指定するには、どのようなコードを書けばいいのかを探していた方による検索です。
Shapes.AddConnectorメソッドでは色を指定できない
最初に理解していただきたいのは、ShapesコレクションのAddConnectorメソッドでは、色を指定できないという仕様です。
オブジェクトブラウサーで確認すればわかるとおり、ShapesコレクションのAddConnectorメソッドには、種別(Type)と位置(BeginX, BeginY, EndX, EndY)を指定する引数しか渡せません。
色を指定したい場合、ShapesコレクションのAddConnectorメソッドが実行されると返される、コネクターを表すShapeオブジェクトを利用します。
コネクターを追加して色を指定するサンプルマクロ
以下の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オブジェクトの操作に慣れていない方には、オブジェクト変数を使ったコードの形で確認することをおすすめします。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
- Newer:PowerPoint VBAで表に値を設定する
- Older:TEXTJOIN関数で改行を
Home » エクセルマクロ・Excel VBAの使い方 » Shapesコレクション・Shapeオブジェクト » AddConnctorで色を指定する-Shape.Line.ForeColor