プロが教えるわが家の防犯対策術!

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

A 回答 (2件)

無理なようです。


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

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

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

マクロの例です。



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
    • good
    • 1
この回答へのお礼

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

お礼日時:2009/09/02 17:23

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています