|
かおり さん、こんばんわ。
>区分が「4月」「5月」「6月」「7月」とあって、それぞれ全ての%の値を取得したいと考えています。
>グラフの表示のパーセントから直接値を取得することは不可能なのでしょうか?
>自分なりにいろいろ検索してみましたが、グラフの値を直接取得するコードが見当たりませんでした。
直接取得する方法は私も知りませんが、よそのブックを処理するということなので、保存せずに閉じるなら、データラベルを設定してその値を読み取ってみてはいかがでしょうか。
アクティブなシートに円グラフを置いて試してみてください。
Sub Macro1()
Dim co As ChartObject, pp As Point, DT As Variant
For Each co In ActiveSheet.ChartObjects
'単体の円グラフなら処理
Select Case co.Chart.ChartType
Case xlPie, xl3DPie, xlPieExploded, xl3DPieExploded
'データラベルを表示 例)『4月;10%』
co.Chart.SeriesCollection(1).ApplyDataLabels AutoText:=True, LegendKey:=False, _
HasLeaderLines:=True, ShowSeriesName:=False, ShowCategoryName:=True, _
ShowValue:=False, ShowPercentage:=True, ShowBubbleSize:=False, Separator:="; "
'データラベルの内容を表示
For Each pp In co.Chart.SeriesCollection(1).Points
'分割
DT = Split(pp.DataLabel.Characters.Text, ";")
'結果
MsgBox DT(1), vbInformation, DT(0)
Next
'データラベル非表示
co.Chart.SeriesCollection(1).ApplyDataLabels AutoText:=True, LegendKey:=False, _
HasLeaderLines:=True, ShowSeriesName:=False, ShowCategoryName:=False, _
ShowValue:=False, ShowPercentage:=False, ShowBubbleSize:=False
End Select
Next
End Sub
こんな感じです。
|
|