- ベストアンサー
Excel2007 円グラフの判例の上位項目表示
- Excel2007 円グラフの判例の上位10項目の表示方法はありますか?
- Excel2007 円グラフの判例で上位10項目のみ表示させたい場合、簡単な方法はありますか?
- Excel2007 円グラフの判例で上位項目のみを表示させる方法について教えてください。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
凡例項目を削除するVBAの例です。 降順にプロットされていることが前提条件です。 グラフを選択しておいて実行してください。 (例1) Dim i As Long ActiveChart.Legend.Delete ActiveChart.HasLegend = True With ActiveChart.Legend For i = .LegendEntries.Count To 11 Step -1 .LegendEntries(i).Delete Next End With
その他の回答 (3)
- MarcoRossiItaly
- ベストアンサー率40% (454/1128)
1,000 個もあったら、円グラフの中に載せたとしても、それを見た人は読み取れませんよね。平均で 0.1 % ですからね。 既に出ている回答にもあるように、ムリヤリ凡例のみ非表示にしようと思えば、VBA における Legend オブジェクトの操作でできます。けれど、図解の手法として本当にそれでよいのか、見直してみたほうがよいでしょう。 No.2 さんのように、「その他」などの項目を作って一まとめにするというのが通常の方法だと思いますので、それをお勧めします。グラフだけでなく、人に見せる表とか、箇条書きであっても、同じことです。 ベストアンサーは辞退します。
お礼
ありがとうございます。質問内容内の意図している作業自体がナンセンスという解釈ですね。おっしゃるとおりと思います。方法論といてのご回答も一応いただけたようですので参考にしてみます。
- xls88
- ベストアンサー率56% (669/1189)
数値データを判定するようにしてみました。 プロット順は影響しません。 (例2) Dim rng As Range Dim v As Variant Dim i As Long With ActiveChart .Legend.Delete .HasLegend = True With .SeriesCollection(1) v = .values Set rng = Range(Split(.Formula, ",")(2)) End With With ActiveChart.Legend For i = UBound(v) To 1 Step -1 If WorksheetFunction.Rank(v(i), rng, 0) > 10 Then .LegendEntries(i).Delete End If Next End With End With
お礼
詳解にありがとうございます。全く中身がわかりませんがご参考にさせて頂きます。
- tom04
- ベストアンサー率49% (2537/5117)
お礼
ありがとうございます。VBAは詳しく理解していませんが、逆に通常ではできないのでしょうね。。 1000項目のケースは不要としても、全部で30項目の場合など、適宜活用できそうですね。参考にしてみます