

お世話になります。
円グラフの0%のラベルを削除するVBAを調べており、
http://support.microsoft.com/kb/142132/ja
に掲載されているものを使用しようかと思っています。
扱っているグラフのシートがたくさんあるのですが、"Sheet1"や"グラフ 1"の部分をその都度書き換えないで自動で操作することは可能でしょうか?
よろしくお願いします。
Sub ClearLabels()
Worksheets("Sheet1").ChartObjects("グラフ 1").Chart.ApplyDataLabels _
Type:=xlShowPercent
For Each X In Worksheets("Sheet1").ChartObjects("グラフ 1"). _
Chart.SeriesCollection(1).Points
If InStr(X.DataLabel.Text, "0%") > 0 _
And Len(X.DataLabel.Text) = 2 Then
X.DataLabel.Delete
End If
Next
End Sub
No.3ベストアンサー
- 回答日時:
こんばんは。
こういうことかな?
Sub ClearLabels2()
Dim cht As ChartObject
Dim x As Variant
For Each cht In ActiveSheet.ChartObjects
With cht.Chart
If .Type = xlPie Then
.ApplyDataLabels Type:=xlShowPercent
For Each x In .SeriesCollection(1).Points
If InStr(x.DataLabel.Text, "0%") > 0 _
And Len(x.DataLabel.Text) = 2 Then
x.DataLabel.Delete
End If
Next x
End If
End With
Next cht
End Sub
No.6
- 回答日時:
マクロの記録をとってみて、1つのグラフ単体で
Sub Macro2()
ActiveSheet.ChartObjects("グラフ 3").Activate
ActiveChart.PlotArea.Select
ActiveChart.ApplyDataLabels AutoText:=True, LegendKey:=False, _
HasLeaderLines:=True, ShowSeriesName:=False, ShowCategoryName:=False, _
ShowValue:=False, ShowPercentage:=True, ShowBubbleSize:=False
ActiveChart.SeriesCollection(1).DataLabels.Select
Selection.NumberFormatLocal = "0%;;"
End Sub
になりました。
"0%;;"でうまく行くように見えましたがダメですか。
>グラフのシートがたくさんあるのですが
質問の重点はこちらにある?
それは
For Each X In Worksheets("Sheet1").ChartObjects("グラフ 1"). _
で解決できるのですね。
マクロの記録でいろいろ改造しようかと思っていたのですが、VBAの知識が全くないので、苦労しています((+_+))。
ご回答頂いた皆さんすごいですね。私ももっと勉強したいです。ご回答ありがとうございました。自分自身勉強になり感謝しております。
No.5
- 回答日時:
ANo.4のコメントは感違いでした。
再表示されるようにコーディングされていますね。
ただ、書式設定すれば、データ更新の都度、マクロを走らせる必要がない、ということでお勧めだと思います。
どうでしょうか?
cht.Chart.SeriesCollection(1).DataLabels.NumberFormatLocal = "0%;;;"
スレ汚し、大変失礼しました。
No.4
- 回答日時:
失礼します。
余計なお節介だとは思いますが、
質問にたいする直接の回答は、Wendy02さんから充分以上の御回答が示されたと思います。
ただ、個々のデータラベルを削除すると、元データがゼロ値以外の値に更新された場合、追従して再表示されることがなくなります。
データラベルを再表示するマクロが必要ということになります。その必要がなければ無問題です。
再表示する必要があるなら、umazanpaiさんが言われるように、データラベルの書式設定で対処した方が良いと思います。
とりあえずWendy02さんの回答で解決できそうです。元データを更新したときは注意しようかと思ってます。ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) シート削除のマクロで「deleteメソッドは失敗しました」となります。助けてください! Sub 不要 6 2022/09/08 16:41
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Excel(エクセル) なぜExit Subがあるのかわかりません 4 2023/02/19 12:34
- Excel(エクセル) エクセルのイベントVBAを複数のシートで動かしたい 1 2022/12/07 16:55
- Excel(エクセル) 2つのVBAを一緒にしたら機能しなくなりました(エクセル) 7 2022/06/02 12:41
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/02/02 09:25
- Excel(エクセル) EXCELのグラフを画像(JPG形式)で保存、通常実行がうまく行かない。ステップインはうまく行く 3 2022/08/30 12:06
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Visual Basic(VBA) EXCELのVBAについて 2 2023/07/05 17:17
- Visual Basic(VBA) VBAの繰り返し処理について教えてください。 3 2022/08/02 13:21
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルのグラフ作成で軸を等...
-
Excel:別シートにグラフを貼り...
-
エクセルの縦軸(Y軸)が不均等...
-
Excelでx軸とy軸を設定して図を...
-
エクセルで折れ線と散布図を同...
-
EXCELでグラフを作るとき、縦軸...
-
散布図を縦に2個並べて出力したい
-
EXCELのグラフ作成時に元データ...
-
ワードの差し込みにて、値をグ...
-
エクセルで折れ線グラフ(散布...
-
エクセルで、極座表のグラフ描...
-
エクセルのグラフの1点の色を変...
-
excelのグラフの横軸の表示につ...
-
エクセル円グラフでの質問
-
エクセル 足されていくグラフ
-
2019エクセル折れ線グラフで、Y...
-
対数目盛を使用時のグラフについて
-
Excelグラフの有効数字の統一が...
-
[エクセル]マクロで、自動的に...
-
エクセル グラフはあるけれど...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルのグラフ作成で軸を等...
-
EXCELでグラフを作るとき、縦軸...
-
Excel:別シートにグラフを貼り...
-
エクセルの縦軸(Y軸)が不均等...
-
エクセルの円を5等分する方法
-
Excelでx軸とy軸を設定して図を...
-
エクセルで折れ線と散布図を同...
-
エクセルで折れ線グラフ(散布...
-
エクセルで作ったグラフの右側...
-
エクセルで、極座表のグラフ描...
-
エクセル グラフの”データーテ...
-
Excelグラフの有効数字の統一が...
-
エクセル グラフはあるけれど...
-
散布図を縦に2個並べて出力したい
-
エクセルで式からグラフを作成...
-
ExcelでIF関数によるグラフの表...
-
エクセルの対数グラフのエラー
-
ExcelのグラフをPowerPointに貼...
-
エクセルグラフの項目名を折り...
-
エクセルのグラフの1点の色を変...
おすすめ情報