
今折れ線グラフを作成しています。
データの範囲設定で悩んでいます。
項目軸ラベルのセル範囲と、グラフデータのセル範囲を指定を以下のように設定し折れ線グラフを作成しました。
Set RngData = Union(Wb3Sh6.Range(Cells(範囲1, 1), Cells(範囲2 - 1, 1)), _
Wb3Sh6.Range(Cells(範囲1, 12), Cells(範囲2 - 1, 12)), _
Wb3Sh6.Range(Cells(範囲1, 18), Cells(範囲2 - 1, 18)), _
Wb3Sh6.Range(Cells(範囲1, 33), Cells(範囲2 - 1, 33)), _
Wb3Sh6.Range(Cells(範囲1, 34), Cells(範囲2 - 1, 34)), _
Wb3Sh6.Range(Cells(範囲1, 39), Cells(範囲2 - 1, 39)), _
Wb3Sh6.Range(Cells(範囲1, 40), Cells(範囲2 - 1, 40)))
ActiveChart.SetSourceData Source:=RngData, PlotBy:=xlColumns
ですが。
項目軸を「Wb3Sh6.Range(Cells(範囲1, 12), Cells(範囲2 - 1, 12)), 」
のみとしたいのに
項目軸が「Wb3Sh6.Range(Cells(範囲1, 1), Cells(範囲2 - 1, 1)), _
Wb3Sh6.Range(Cells(範囲1, 12), Cells(範囲2 - 1, 12)), _
Wb3Sh6.Range(Cells(範囲1, 18), Cells(範囲2 - 1, 18)), _
Wb3Sh6.Range(Cells(範囲1, 33), Cells(範囲2 - 1, 33)), _
Wb3Sh6.Range(Cells(範囲1, 34), Cells(範囲2 - 1, 34)), _
Wb3Sh6.Range(Cells(範囲1, 39), Cells(範囲2 - 1, 39)), _」
となってしまいます。
項目軸を確実に設定したいのですが、どうすればよいでしょうか。
No.1ベストアンサー
- 回答日時:
>項目軸を確実に設定したいのですが、どうすればよいでしょうか。
どんなデータで、どの部分を確実になのかわかりませんが・・・・。
1行・1列は項目名として、データは変数で行範囲を指定し、
12~40列の指定列を対象とする場合、以下のコードで設定出来ます。
また、グラフを選択していない状態でも動作するように、
名前で対象のグラフを選択してから値を変更するようにしています。
コード内でグラフの名前は「グラフ 1」としています。
(異なる場合はコード内の該当位置を修正してください)
>項目軸を「Wb3Sh6.Range(Cells(範囲1, 12), Cells(範囲2 - 1, 12)), 」
>のみとしたいのに
コード内のArray(1, 12, ・・・)で対象の列番号をカンマ区切りで指定してください。
For Each myCol In Array(1, 12)
で1列目(項目列)と12列目(データ列)を対象範囲として設定します。
■VBAコード
Sub sample()
Dim RngData As Object, Wb3Sh6 As Worksheet
Dim 範囲1 As Long, 範囲2 As Long
Dim myCol As Variant
'定数を設定
Set Wb3Sh6 = ActiveSheet
範囲1 = 1: 範囲2 = 11
'項目範囲を設定
With Wb3Sh6
For Each myCol In Array(1, 12, 18, 33, 34, 39, 40)
If RngData Is Nothing Then
Set RngData = .Range(.Cells(範囲1, myCol), .Cells(範囲2 - 1, myCol))
Else
Set RngData = Union(RngData, .Range(.Cells(範囲1, myCol), .Cells(範囲2 - 1, myCol)))
End If
Next myCol
End With
'項目を反映
ActiveSheet.Shapes("グラフ 1").Select
ActiveChart.SetSourceData Source:=RngData, PlotBy:=xlColumns
End Sub

eden3616様
ご回答、ありがとうございます。
(お礼が遅くなって申し訳ありません)
記載いただいたコードを埋め込んで稼働しましたが、症状は変わりませんでした。
※グラフは全部で10個作成(データはすべて違う)するのですが、9個目だけバグが出てしまう
バグ・・・項目軸が複数選択される
グラフを作成するデータが悪いのだと思います。
データを精査し、なぜ一つだけバグが出るのか調べてみます。
ありがとうございました。
No.2
- 回答日時:
>※グラフは全部で10個作成(データはすべて違う)するのですが、9個目だけバグが出てしまう
> バグ・・・項目軸が複数選択される
(1)ベースとなるデータに差異が無いかの確認と、差異による処理内容への影響
(2)Debug.Print RngData.AddressなどをFor内に入れて、ブレークポイントをいれてから実行
(3)ステップ実行で各変数値が正常であるか確認
異常を試してみてください。
再度の回答、ありがとうございます。
(1)ベースとなるデータに差異が無いかの確認と、差異による処理内容への影響
⇒ 見たところ差異に気づくことができませんでした。
そのため、元データを最初から作りなおしました。
バグがでる9個目のデータのブランク行をカットするとうまくいくことが分かりました。
ただ、ブランク行が根源かどうかは不明です。
(2)Debug.Print RngData.AddressなどをFor内に入れて、ブレークポイントをいれてから実行
⇒ イミディエイトウインドウにて確認しました。
きれいに表示されました♪
(3)ステップ実行で各変数値が正常であるか確認
⇒ 表示を確認しましたが、正常値が取れていました。
よくよく10個のグラフを確認すると、2つのグラフに他のバクが出ていました。
系列名と系列値に対するバグです。
系列名はセル1個、系列値はその他セル100個としたいのに、
2つのグラフだけ系列名をセル4個持ってきてしまいます。
これも原因が不明です。
対策として、一度作成したグラフを修正するよう、以下のコードを埋め込みました。
コードがぐちゃぐちゃになりましたが、グラフとしてはきれいに仕上がりました。
原因が分からずモヤモヤしますが、一先ずこれで進めようと思います。
データを開示することができず、明確な説明ができずに申し訳ありません。
2度のご回答、ありがとうございました。
ActiveChart.FullSeriesCollection(1).XValues = Wb3Sh6.Range(Cells(範囲1 + 1, 1), Cells(範囲2 - 1, 1))
ActiveChart.FullSeriesCollection(1).Name = Wb3Sh6.Cells(範囲1, 12)
ActiveChart.FullSeriesCollection(1).Values = Wb3Sh6.Range(Cells(範囲1 + 1, 12), Cells(範囲2 - 1, 12))
ActiveChart.FullSeriesCollection(2).Name = Wb3Sh6.Cells(範囲1, 18)
ActiveChart.FullSeriesCollection(2).Values = Wb3Sh6.Range(Cells(範囲1 + 1, 18), Cells(範囲2 - 1, 18))
ActiveChart.FullSeriesCollection(3).Name = Wb3Sh6.Cells(範囲1, 33)
ActiveChart.FullSeriesCollection(3).Values = Wb3Sh6.Range(Cells(範囲1 + 1, 33), Cells(範囲2 - 1, 33))
ActiveChart.FullSeriesCollection(4).Name = Wb3Sh6.Cells(範囲1, 34)
ActiveChart.FullSeriesCollection(4).Values = Wb3Sh6.Range(Cells(範囲1 + 1, 34), Cells(範囲2 - 1, 34))
ActiveChart.FullSeriesCollection(5).Name = Wb3Sh6.Cells(範囲1, 39)
ActiveChart.FullSeriesCollection(5).Values = Wb3Sh6.Range(Cells(範囲1 + 1, 39), Cells(範囲2 - 1, 39))
ActiveChart.FullSeriesCollection(6).Name = Wb3Sh6.Cells(範囲1, 40)
ActiveChart.FullSeriesCollection(6).Values = Wb3Sh6.Range(Cells(範囲1 + 1, 40), Cells(範囲2 - 1, 40))
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで(~以上,~以下)...
-
年代と年台・・・どちらが正し...
-
三角関数 -3分のπって3分の5...
-
三角関数の範囲について、 0≦x≦...
-
「余年」の意味について教えて...
-
不等式で辺々加えるときに不等...
-
【問題】 f(x) = x^2 - 4a x + ...
-
2x^3+x^2-9を有理数の範囲内...
-
COUNTIF関数 ある範囲の数値で...
-
方程式 e^x=x+1 の解
-
離れた列での最大値の求め方
-
図形の問題の求め方を教えてく...
-
言葉、日本語について。 所要範...
-
指定範囲内のオートシェイプを...
-
三角方程式の問題です
-
判別式の使う時とか使わない時...
-
連立方程式の整数解の個数の問...
-
【2x²+(4-7a)c+a(3a-2)<0の解が...
-
整式にはx^0、つまり整数のみは...
-
三角関数についての質問です。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで(~以上,~以下)...
-
三角関数の範囲について、 0≦x≦...
-
【問題】 f(x) = x^2 - 4a x + ...
-
「余年」の意味について教えて...
-
年代と年台・・・どちらが正し...
-
(x2乗+9)って因数分解出来ます...
-
離れた列での最大値の求め方
-
警官に、「払うもん、払え」と...
-
三角関数 -3分のπって3分の5...
-
判別式の使う時とか使わない時...
-
X4乗=64の解き方を教えてほし...
-
図形の問題の求め方を教えてく...
-
COUNTIF関数 ある範囲の数値で...
-
エクセルでPrint Area と表示さ...
-
極座標ではr>0の時のみ考えて、...
-
絶対値のついた2つの不等式に...
-
シグマの範囲が2nまでの関数で...
-
高校数学、三角関数についてで...
-
θが微小の時、sinθ=θ、cosθ=1と...
-
お教えで来る範囲内で 文言が変...
おすすめ情報