PowerPoint VBAで埋め込みExcel折れ線グラフのマーカー枠線の幅を取得・設定する方法

Excel

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を参照し、対象となる系列とマーカーが設定されているか確認すれば、折れ線グラフのマーカー枠線も自在に調整できます。

コメント

タイトルとURLをコピーしました