こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Excel2007グラフの軸ラベルで、項目数が101個以上の時

項目軸の項目数(行数)が101を超えると、項目軸タイトルが1つ飛びの表示になってしまいます。行数を100行に減らすと飛びません。
軸のオプションでラベルの間隔を1と指定しても、飛んでしまい。飛ばない様にする方法がわからず質問させてもらっています。
グラフの大きさをかなり大きくしても変わらず飛んでしまうのですが、回避する方法はないものでしょうか?(なお、かなり大きくした場合は、ラベルの間隔を自動とすると飛ばなくできましたが、大きすぎて使えません^^;)
確認したのはExcel2007SP2でした。
<再現方法>
新規にワークシートを開き、どこでもいいので1~101までを順に行方向に入力します。入力した1~101までの範囲をグラフの範囲に設定します。グラフは、一番単純な棒グラフです。横軸に1~101が並んでいるかと思いますので軸のプロパティでラベルの間隔を自動ではなく、1に設定し、グラフをある程度大きくすると、横軸の1~101が恐らく1つ飛びになっているかと思います。

投稿日時 - 2009-08-21 12:54:25

QNo.5224935

困ってます

質問者が選んだベストアンサー

無理なようです。
ダミーデータの系列を追加し、データラベルを項目軸ラベルに利用すればどうでしょうか。

X軸の軸ラベルを、非表示にする。
(「表示形式」>「ユーザー定義」で「""」に設定)
新しい系列をグラフに追加する
(全項目Y軸の最小値と同じ値にする)
追加プロットされた系列の「データラベル」を表示
「データラベル」の「位置」は「下」に設定
1項目のデータラベルを選択
数式バーに、=A2 のように、社名データセル参照式を入力し、Enterで確定
他のデータラベルについても同様にしてセル参照式を入力

と、いったようなことでどうでしょうか。
数が多いと手動では大変です。
マクロを組めばどうでしょうか。

投稿日時 - 2009-08-21 14:26:30

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

マクロの例です。

Dim n As Integer '項目数
Dim dd As Variant 'ダミーデータ
Dim i As Integer

With ActiveChart
n = .SeriesCollection(1).Points.Count
.Axes(xlCategory).TickLabelPosition = xlNone
End With

For i = 1 To n
dd = dd & "," & 0
Next i
dd = Replace(dd, ",", "", 1, 1)

With ActiveChart.SeriesCollection.NewSeries
.Values = "{" & dd & "}"
.ChartType = xlLine
.Border.LineStyle = xlNone
.ApplyDataLabels
.DataLabels.Position = xlLabelPositionBelow
For i = 1 To n Step 1
With .Points(i).DataLabel
.Text = Cells(i, "A").Value
End With
Next i
End With

投稿日時 - 2009-08-22 11:04:58

お礼

わざわざマクロまで書いていただきありがとうございます。
マクロでの逃げ道がありそうだとわかったのは助かりました。

投稿日時 - 2009-09-02 17:23:47

あなたにオススメの質問