「powerpoint マクロ 直線 addline」
という検索キーワードでのアクセスに気付きましたので、いつものように簡単なサンプルをご紹介します。
直線を引くサンプルマクロ
以下のSubプロシージャを実行すると、アクティブなプレゼンテーションの1枚目のスライドに直線が引かれます。ActivePresentation.Slides(1).Shapes.AddLine _
BeginX:=0, BeginY:=50, EndX:=200, EndY:=50
End Sub
ShapesコレクションオブジェクトのAddLineメソッドには、
始点の位置を指定するBeginX・BeginY、終点の位置を指定するEndX・EndYの4つの引数を必ず指定します。
上記のコードは
ActivePresentation.Slides(1).Shapes.AddLine BeginX:=0, BeginY:=50, EndX:=200, EndY:=50
と1行でも書けますけれど長くて読み辛いので、拙著『いちばんやさしいExcel VBAの教本』のLesson 59「マクロ記録で使われる「行継続文字」について学習しましょう」でもご紹介している、
「 _」(スペースとアンダーバー)で物理的に改行しています。
直線を引いて書式設定を行うサンプルマクロ
直線を引いて、書式設定も行いたいということも多いでしょう。その場合以下のSubプロシージャを参考にしてください。
Dim shp As Shape
Set shp = ActivePresentation.Slides(1).Shapes.AddLine( _
BeginX:=0, BeginY:=50, EndX:=200, EndY:=50)
shp.Line.ForeColor.RGB = RGB(0, 255, 0)
shp.Line.Weight = 5
shp.Line.DashStyle = msoLineDashDotDot
End Sub
Shapes.AddLineメソッドは、
追加した直線を表すShapeオブジェクトを返します。
そこで、
Dim shp As Shape
Set shp = ActivePresentation.Slides(1).Shapes.AddLine( _
BeginX:=0, BeginY:=50, EndX:=200, EndY:=50)
オブジェクト変数shpに、戻りをセットして、ShapeオブジェクトのLineプロパティで取得できるLineFormatオブジェクトの各種プロパティで書式設定を行っています。
shp.Line.ForeColor.RGB = RGB(0, 255, 0)
shp.Line.Weight = 5
shp.Line.DashStyle = msoLineDashDotDot
カッコの要・不要
先述の、直線を追加するだけのSubプロシージャは、
ActivePresentation.Slides(1).Shapes.AddLine _
BeginX:=0, BeginY:=50, EndX:=200, EndY:=50
でしたけれど、このSubプロシージャではオブジェクト変数にセットするために、
Set shp = ActivePresentation.Slides(1).Shapes.AddLine( _
BeginX:=0, BeginY:=50, EndX:=200, EndY:=50)
とShapes.AddLineメソッドの4つの引数をカッコで括る必要があります。
これは拙著『いちばんやさしいExcel VBAの教本』のp.153のワンポイント「VBAでは戻り値を使わない場合にカッコを付けない」でもご紹介している、
戻りを使う場合にはカッコが必要で、使わない場合にはカッコが不要の一例です。
- Newer:UsedRangeで最終行番号が取得できない
- Older:行数をカウントする-ROWS関数
Home » パワーポイントマクロ・PowerPoint VBAの使い方 » Shapesコレクション・Shapeオブジェクト » AddLineメソッドで直線を描くPowerPointマクロ