
No.2ベストアンサー
- 回答日時:
どういうロジック(ルール)で、どうずらすか、個別でなく、ルールを作れるなら、それを考えないとダメでしょう。
それは技術者だから優れたアイデアが出るとは限らないように思う。
又どんな場合にも通用するルールというのも考えにくいように思いますですが。
そのアイデアを文章表現して、(別)質問すれば、簡単なルールなら、あるいはVBAで実現(回答)してくれるかも知れません。
(1)ラベル文字方向に角度を付ける
(2)上下位置を互い違いにする(原初位置より、一定数だけプラスとマイナスを繰返す)
などのようなことです。
後者は
Sub Macro4()
For i = 1 To ActiveChart.SeriesCollection(1).Points.Count
ActiveChart.SeriesCollection(1).Points(i).DataLabel.Select
If i Mod 2 = 0 Then '偶数番、奇数番目で表示位置上下に差をつける
Selection.Top = Selection.Top + 10
Else
Selection.Top = Selection.Top - 10
End If
Next i
End Sub
上記は私の思いつきで、データの有様によっては、見やすくなるとは限らないことも判るのですが。
お礼が遅くなり申し訳ございません。
上記ご連絡いただいたロジックでヒントを得ました。
業者に相談し、進捗している状況です。大変ありがとうございました。
No.3
- 回答日時:
下記コードを試してください。
対象グラフを選択して置いて実行してください。
系列数が1つの場合です。
系列が複数ある場合はもう少し考えなければいけません。
データラベルはWidth,Heightが取れません。
重なり量の計算にFont.Sizeを代用しています。
移動量はラベルの余白を考慮して補正値を0.7で入れてあります。
Dim fsize As Variant
Dim dlbtop1 As Variant
Dim dlbtop2 As Variant
Dim i As Long
With ActiveChart.SeriesCollection(1)
'ラベル初期化
.DataLabels.Delete
.HasDataLabels = True
Application.ScreenUpdating = True
fsize = .DataLabels.Font.Size
For i = 1 To .Points.Count - 1
dlbtop1 = .Points(i).DataLabel.Top
dlbtop2 = .Points(i + 1).DataLabel.Top
If Abs(dlbtop1 - dlbtop2) < fsize Then
With .Points(i + 1).DataLabel
If dlbtop1 < dlbtop2 Then
.Top = .Top + (fsize - (dlbtop2 - dlbtop1)) * 0.7
Else
.Top = .Top - (fsize - (dlbtop1 - dlbtop2)) * 0.7
End If
End With
'ラベル移動完了までの時間稼ぎ
Application.Wait Now + TimeValue("00:00:01")
End If
Next
End With
お礼が遅くなり申し訳ございません。
上記大変ありがとうございました。ロジックを考えていけば実現できることが分かりました。
大変ありがとうございました。
No.1
- 回答日時:
たぶん、重なった時の処理方法を明確にできれば、対応できると思います
以下は、処理できるか否か程度の試験的マクロ(使い物にならない)
Sub Macro1()
Dim n As Byte
'ActiveSheet.ChartObjects("グラフ 3").Activate
With ActiveChart.SeriesCollection(1)
For n = 1 To 9
'下記の内容を検討する必要がある
If Abs(.Points(n).DataLabel.Top - .Points(n + 1).DataLabel.Top) < 20 Then
.Points(n + 1).DataLabel.Top = .Points(n + 1).DataLabel.Top - 10
End If
Next n
End With
End Sub
結果は添付図

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルの散布図で新たに入力した値のデータラベルが空欄になる現象 1 2022/04/26 09:31
- Excel(エクセル) Excelグラフについて 1 2023/05/12 16:26
- Excel(エクセル) Excel グラフのプロットエリアについて 2 2022/08/26 18:12
- Visual Basic(VBA) VBA初心者です。 VBAで行単位で条件付き書式の色をカウントしたいです。 大量のデータがあるExc 3 2022/06/08 10:00
- Visual Basic(VBA) VBA初心者です。 VBAで行単位で条件付き書式の色をカウントしたいです。 大量のデータがあるExc 3 2022/06/08 10:02
- Excel(エクセル) <スプレッドシート>採用進捗 グラフ作成について 3 2022/10/23 15:52
- Visual Basic(VBA) 【VBA】もし、値が0だったら左のセルと合わせて削除したい 3 2023/04/20 10:12
- Excel(エクセル) ExcelVBAで自動調整できますか? 3 2023/08/25 22:59
- Excel(エクセル) Excelグラフのラベルオプションの並べ替えは可能ですか。セルの値を最後にしたいのですが。 1 2022/06/05 10:45
- Excel(エクセル) エクセル ヒストグラム作成 1 2023/01/02 09:55
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ワードかエクセルで、KOKU...
-
dvdラベルの印刷について
-
DVDCDレーベル印刷
-
差込印刷
-
ラベルの差込印刷で2ページ目以...
-
エレコムの用紙を使ってCDラベ...
-
一点一葉とはどんな意味ですか?
-
エクセル2013でラベル印刷の方...
-
筆ぐるめで自分の差出人ラベル...
-
食品ポスター作成
-
宛て名ラベルの作成方法につい...
-
アクセスのラベルサイズ設定で
-
【word2003】保存した文書のラ...
-
libreoffice での差し込み印刷
-
A4横文書を横のまま、A4縦用紙...
-
ISO警告ラベル
-
CDの曲名のテンプレートを作り...
-
Access2000の宛名ラベルについて
-
DVDやCDについて質問です!
-
Access レポートでのラベルの表...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ワードかエクセルで、KOKU...
-
エクセル宛名ラベルが重複する
-
一点一葉とはどんな意味ですか?
-
ラベルの差込印刷で2ページ目以...
-
インデックスに印刷する方法
-
《Excel2000》散布図のデータラ...
-
DVDのタイトルを変更したい
-
筆王
-
フラットファイルの背表紙部分...
-
ゆうパックの宛名ラベルの書き方
-
宛名ラベル 2枚目以降が表示、...
-
エクセルでマイタックラベルへ...
-
ワード差し込み印刷:作成した...
-
ワード差込印刷 縦書き・横書き...
-
ワードで宛名ラベルのフォント...
-
ピボットテーブルのΣ値のタイト...
-
CDやDVDの表面へのラベル...
-
ラベル屋さんでひとつひとつの...
-
Excel VBAのフォーム_ラベルの...
-
wordでラベル差込印刷時に右端...
おすすめ情報