- 締切済み
円グラフで0%の場合、凡例とラベルを非表示にしたい
円グラフで”0%”の場合、凡例とラベルを非表示にしたいです。 データラベルの書式設定で、表示形式を 0%;; と設定しても非表示にならず・・・ 0%は非表示に、 それ以外は%表示(小数点以下切り捨て)にしたいのですが、 どのように設定したらいいのでしょうか><
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- imogasi
- ベストアンサー率27% (4737/17069)
(1)既に出ているご回答の、エラーを起こす方法のほかに (2)その行(場合によって列)を「非表示」にすると、 (操作で「ホーム」の「書式」の「行を表示しない」をクリック) そのグラフ上からその「要素分」(だけ)がグラフから消える。 データラベルと凡例とも消える。 下記例で言えば「木下」分だけが消える。 ーー その他に その要素1つだけの (1)データラベル DataLabe (2)凡例 Legend を削除や非表示出来ないか、試行した。 これらはVBAでは、HasDataLabe、HasLegend でTrueかFalseか、で一括して「表示する、表示しない」を左右するようになっていて、各要素分の個別箇所の表示を弄るようにはさせて無いようだ。 ================= データ例A1:B5 ーーー 例示データで 分類 価 山田 73 木村 22 木下 4 上野 1 円グラフ作製する。 ーーーーーーーーーーーーーーーーー (A)「データラベル」について その後 データラベルの追加 データラベルの書式設定 分類名+値 などを行っておく。 ーーー VBAですが、 「木下」分のデータラベルを不表示。 下記はエラー。不成功。 Sub Sample2() With ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1).Points(3) ' .HasDataLabels = True .DataLabels.ShowSeriesName = False .DataLabels.ShowCategoryName = False .DataLabels.ShowValue = False End With End Sub ーーーーーーーーーーーーーーーー (A)「凡例」について VBAですが、 こちらははややこしい。 下記VBAで、凡例から「上野」は消えた。 WEBにあった例を修正。 小生は仕組みを良く理解できてない。 Sub test06() ActiveSheet.ChartObjects(1).Chart.HasLegend = True With ActiveSheet.ChartObjects(1).Chart .ChartTitle.Text = "獲得額" .SeriesCollection(1).XValues = "={""山田部長"",""大村課長"",""木下係長"",""""}" End With End Sub でも凡例の中のマーカーは残る。消す方法が判らない。 ーーー Xvalueの「上野」が空白になったことの確認。 Sub test07() Dim srs As Object 'Series Set srs = ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1) Dim vals As Variant ' vals = srs.Values vals = srs.XValues For i = 1 To 4 MsgBox vals(i) Next i End Sub ーー XValuesのこの先詳しいことが判らない。
- kon555
- ベストアンサー率51% (1842/3559)
検索したらこういう方法は出てきましたが、どうでしょう。 https://pcacademy.jp/post-6911 あと円グラフで使えたかは記憶にないのですが、エラー値である「#N/A」の時には表示されないのを利用して、if関数で「0の場合にはエラー」としてグラフから消すテクニックもあります。 https://hamachan.info/win8/excel/na.html