グラフ レーダーチャートのラベルサイズを変更する
detail.chiebukuro.yahoo.co.jp
の質問
エクセルで作成したレーダーチャートをコピペしてパワポに貼り付けるマクロを作成しています。
図のレーダーチャートの教科が書かれている部分のフォントサイズを変更したいのですが、どのようなコードを書き加えればよろしいでしょうか。
に答えてみた。
1.テスト結果をまず、みせる
もったいぶらずに、時間稼ぎしないで、
https://www.youtube.com/live/Lhh8_bBO2Fw?t=60
テスト実行↑する
2.コードの簡単な説明
2.1 .Shapes.Paste で ShapeRange が返るので、
' パワーポイントスライドにペースト Dim ppShpRange As Object 'Shapes.Paste後のシェイプ範囲を受け取る Dim ppShp As Object '(1)先頭のシェイプ※グラフ一つなので固定でいいんだけど Set ppShpRange = ppPrs.Slides(countSld + 1).Shapes.Paste '貼り付けるとオブジェクトが返る Set ppShp = ppShpRange(1) '↑で貼りつけたシェイプ=グラフなので
貼り付け後の、1番目がグラフなので※グラフ一つしか貼ってないけど・・・
ここから、
Set ppShp = ppShpRange(1) '↑で貼りつけたシェイプ=グラフなので
ppShp.Chart でいつものチャート、グラフにたどり着ける。
2.2 レーダーチャートのラベルは少し特殊だった・・・
ハマったのが、おいおい、自分語りはいいよ、短めに。
グラフのラベルを検索すると
Chart.SeriesCollection(1).DataLabels
など、
.DataLabelsがひっかかる。
これじゃなくて、
レーダーチャートは、RadarAxisLabelsだった。
learn.microsoft.com
ChartGroup.RadarAxisLabels プロパティ (PowerPoint)
https://learn.microsoft.com/ja-jp/office/vba/api/powerpoint.chartgroup.radaraxislabels
より
下記、サンプル
With .Chart.ChartGroups(1) .HasRadarAxisLabels = True .RadarAxisLabels.Font.ColorIndex = 3 End With
を参考にする。
あとは、
.RadarAxisLabels.Font.Size
とか、.Size=で変更できました。
変更したソース:
' グラフを画像としてコピー ActiveSheet.ChartObjects(i - 1).Copy ' パワーポイントスライドにペースト Dim ppShpRange As Object 'Shapes.Paste後のシェイプ範囲を受け取る Dim ppShp As Object '(1)先頭のシェイプ※グラフ一つなので固定でいいんだけど Set ppShpRange = ppPrs.Slides(countSld + 1).Shapes.Paste '貼り付けるとオブジェクトが返る Set ppShp = ppShpRange(1) '↑で貼りつけたシェイプ=グラフなので 'ChartGroup.RadarAxisLabels プロパティ (PowerPoint) ' https://learn.microsoft.com/ja-jp/office/vba/api/powerpoint.chartgroup.radaraxislabels With ppShp.Chart.ChartGroups(1) 'レーダーチャートのラベルを変更 .HasRadarAxisLabels = True 'たぶん既にONになっているけど .RadarAxisLabels.Font.Size = 48 'かなり大きく48でテスト '.RadarAxisLabels.Font.ColorIndex = 3 '3赤にする蛇足 End With 'タイトルにセット? ppPrs.Slides(countSld + 1).Shapes(1).TextFrame.TextRange.Text = ws.Cells(2, i).Value DoEvents DoEvents '------
解決のヒントとなれば幸いです。
全体のソースは、
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q11287928591
の質問元を見てください。