• 締切済み

エクセル 大量グラフのX軸一括変換

エクセル グラフのX軸について質問があります。 1つのシートに12個のグラフがあります。そのグラフのX軸を一括で変更させたいのですが、どなたかやり方を教えてください。

みんなの回答

  • okormazd
  • ベストアンサー率50% (1224/2412)
回答No.3

行数の多少は関係ありません。 よく理解できないので、 1.これが1つ。 一括して変えたいのは、x軸の最大、最小など、軸の書式設定にある項目を変えたいのだということ。 各グラフのx軸の最小値、最大値、目盛間隔などは同じだが、これを一括して、別の値にしたい、ということ。 12個ぐらいだと手動で変えてもたいしたことはないと思うが、自動でやりたければVBA VBAの例 Sub chartadjust() Application.ScreenUpdating = False Set wb = Workbooks(ThisWorkbook.Name) Set sh1 = wb.Sheets(1) With sh1 'sheet(1)のA1,A2,A3,A4に"6:00:00","22:00:00","2:00:00","1:00:00" ("は無し)で指定するか、 'scalemin=TimeSerial(6, 0, 0)のように指定する。 'cells(1,1)はA1、cells(1,2)はB1、cells(3,4)はD3だから好きなcellに指定すればよい。 scalemin = .Cells(1, 1) 'TimeSerial(6, 0, 0) 最小値 scalemax = .Cells(2, 1) 'TimeSerial(22, 0, 0) 最大値 unitmajor = .Cells(3, 1) 'TimeSerial(2, 0, 0)  目盛間隔(主) unitminor = .Cells(4, 1) 'TimeSerial(1, 0, 0)  目盛間隔(副) .Activate .Cells(1, 1).Select chn = sh1.ChartObjects.Count For i = 1 To chn With .ChartObjects(i).Chart With .Axes(xlCategory) .MinimumScale = scalemin .MaximumScale = scalemax .MajorUnit = unitmajor .MinorUnit = unitminor .Crosses = xlAutomatic .ScaleType = xlLinear .DisplayUnit = xlNone End With End With Next .Cells(1, 1).Select End With Application.ScreenUpdating = True End Sub そうではなくて、 2.もう1つ。 どれかのグラフの上で右クリック―元のデータ―系列タグ と選び、「元のデータ」ダイアログボックスで、左側の系列の1つを選んでください。 このとき、 右側に、「xの値」というボックスか、 下に「項目軸ラベルに使用」というボックスかどちらかがあるので、 その中に「=Sheet1!R5C3:R23C3」というようなのが書いてあるかどうか確認してください。 これが、x軸が参照している範囲なので、これが各グラフで同じにしておけば一括で変えられますということなので、この参照を同じにしたらどうですか、ということ。

kajiivy
質問者

お礼

返事が遅くなり大変申し訳ありませんでした。 マクロ試してみます。 ありがとうございました!!

  • okormazd
  • ベストアンサー率50% (1224/2412)
回答No.2

x軸の参照を変える。 12個のグラフのx軸がみんな同じなら、どれか1つのグラフのx軸を参照するようにしておく。この参照を変更すれば12個のグラフのx軸すべてが変更される。 (1)のグラフのx軸がsheet1のA3からA18までなら、(2)のグラフのx軸もsheet1のA3からA18にしておく。 sheet1のA3からA18を変更すれば(1)も(2)もx軸がかわる。 グラフにするデータとは別にx軸のデータを持てばいい。 こういうふうに作っていない12個のグラフのx軸を一括で変更しようとするなら、VBAでプログラムすればできるが。

kajiivy
質問者

お礼

ご回答ありがとうございます。 説明不足で申し訳ありませんが、元データが1万行くらいあるところを全部指定して、その中から時間で範囲指定してデータを取り出していました。 なのでA3からA18という指定ではなく、軸の書式設定の中の目盛値の最小・最大値を時間で指定して選び出していました。 そうなると、VBAでプログラムするしかないのでしょうか。 よろしかったらその方法を教えてください。

  • okormazd
  • ベストアンサー率50% (1224/2412)
回答No.1

12個のグラフのx軸はみんな同じなのですか。 表のどこかを参照しているのですか。 どうなっているのを、どういうように変更させたいのかわからないのですが。

kajiivy
質問者

お礼

言葉が足りなくて申し訳ありません。 X軸はみんな同じです。(X軸を時間軸にしています。) 12個のグラフは同じファイル内の違うシートを参照しています。 1つのグラフのX軸を変更したら、残りのグラフも同じように一気に変更するという方法はあるのでしょうか?

関連するQ&A