PowerPointに埋め込まれたExcel折れ線グラフのマーカー枠線の幅は、通常の線幅とは別に管理されています。そのため、折れ線自体の線幅ではなくマーカーの枠線をVBAで制御したい場合、少し工夫が必要です。この記事では、VBAでマーカー枠線の幅を取得・設定する方法について解説します。
埋め込みExcelグラフとPowerPoint VBAの関係
PowerPoint上の埋め込みExcelグラフはOLEオブジェクトとして扱われます。VBAで操作する際には、まずOLEオブジェクトを取得し、その中のChartオブジェクトにアクセスする必要があります。
例えば以下のように、スライド上のグラフを取得できます。
Dim shp As ShapeSet shp = ActivePresentation.Slides(1).Shapes(1)Dim cht As ChartSet cht = shp.OLEFormat.Object.Chart
マーカー枠線の幅を取得・設定する方法
Excel VBAと同じく、Chart.SeriesCollectionのMarkerBorderプロパティを使います。PowerPointからアクセスする場合も基本的には同じですが、埋め込みグラフであることに注意してください。
例:シリーズ1のマーカー枠線幅を変更する場合
Dim srs As SeriesSet srs = cht.SeriesCollection(1)srs.MarkerBorder.Weight = 2 ' 枠線幅をポイントで設定
取得する場合も同様に。
Dim width As Singlewidth = srs.MarkerBorder.WeightMsgBox "マーカー枠線幅: " & width
注意点とトラブルシューティング
PowerPoint内の埋め込みグラフを操作する場合、Excelと異なり一部プロパティが非対応となることがあります。MarkerBorderプロパティが正しく反映されない場合は、以下を確認してください。
- OLEオブジェクトとして正しいChartを参照しているか
- グラフが折れ線タイプでマーカーが設定されているか
- 系列インデックスが正しいか(SeriesCollectionの番号)
実用例:全シリーズのマーカー枠線を一括変更
Dim i As IntegerFor i = 1 To cht.SeriesCollection.Count cht.SeriesCollection(i).MarkerBorder.Weight = 1.5Next i
この方法で、スライド上のすべての折れ線グラフシリーズのマーカー枠線をまとめて調整できます。
まとめ
PowerPointの埋め込みExcelグラフでも、VBAを使えばマーカー枠線の幅を取得・設定可能です。ポイントはSeriesCollectionオブジェクトのMarkerBorder.Weightプロパティを利用することです。
正しくOLEオブジェクトとしてChartを参照し、対象となる系列とマーカーが設定されているか確認すれば、折れ線グラフのマーカー枠線も自在に調整できます。


コメント