Excel散布図のX軸とY軸を入れ替えるVBA
- Excelの散布図でX軸とY軸を入れ替える方法を考えています。VBAを使用してグラフの軸を入れ替えることができますが、エラーが発生してうまくいきません。修正方法を教えてください。
- Excelの散布図でX軸とY軸を入れ替える方法を教えてください。VBAを使用してグラフの軸を入れ替えることができると思いますが、エラーが出てうまくいきません。
- Excelの散布図でX軸とY軸を入れ替える方法を教えてください。VBAを使用してグラフの軸の値を入れ替えることができると思いますが、コードを組んだらエラーが出ました。修正方法を教えてください。
- ベストアンサー
excel散布図のX軸とY軸を入れ替えるVBA
散布図の軸を入れ替える方法を考えています。(excel2003です。) 散布図は数百枚あり、系列ごとに元データが散在しているので、 元データは触らずに、グラフの軸だけを入れ替えて表示したいのです。 例えば横軸が身長、縦軸が体重の散布図を縦軸を体重、横軸を身長にするイメージです。 xvaluesとvaluesを入れ替えるのだと思い、以下を組んでみたのですが、うまくいきません。 どのように修正すればよいか教えてください。 Sub 軸入替() Dim cht As Chart Dim i As Long, N As Long Dim sxvalues As Object,svalues As Object With ActiveSheet.ChartObjects For N = 1 To .Count Set cht = .Item(N).Chart With cht.SeriesCollection For i = 1 To .Count sxvalues = .Item(i).XValues ←ここでエラーが出ます。 svalues = .Item(i).Values .Item(i).Values = sxvalues .Item(i).XValues = svalues Next End With Next End With End Sub 以上です。
- bonosalute
- お礼率100% (5/5)
- Visual Basic
- 回答数1
- ありがとう数2
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
元データとの連動を解除しても構わないなら >Dim sxvalues As Object,svalues As Object Dim sxvalues, svalues ...と、データ型を Variantで受ければいいです。 連動を保持したい場合、Formulaプロパティなどを使うと良いと思います。 Dim cht As Chart Dim i As Long Dim N As Long Dim v, tmp With ActiveSheet.ChartObjects For N = 1 To .Count Set cht = .Item(N).Chart With cht.SeriesCollection For i = 1 To .Count With .Item(i) v = Split(.Formula, ",") tmp = v(1) v(1) = v(2) v(2) = tmp .Formula = Join(v, ",") End With Next End With Next End With
関連するQ&A
- EXCEL2007 <VBAで散布図の系列の追加>
EXCEL2007 <VBAで散布図の系列の追加> 標記の通り、VBAで散布図に新たに系列を追加したいのです。 たとえば現在、系列1があるとします。 そこで、横軸がA1:A10、縦軸がB1:B10のデータを追加するとします。 ActiveChart.SeriesCollection.Add Range("A1:B10") しかし、このマクロだと縦軸がA1:A10の系列2と縦軸がB1:B10の系列3ができてしまします。 そこで、ためしに ActiveChart.SeriesCollection.Add Range("A1") '仮に作る With ActiveChart.SeriesCollection(2) .XValues = Range("A1:A10") .Values = Range("B1:B10") End With とすると、「実行時エラー'1004'; アプリケーション定義またはオブジェクト定義のエラーです。」となります。 いろいろ検索したのですが、これと言ったのがみつかりません。 意図するマクロはどのようなものになるのでしょうか。 ご教示お願いします。
- ベストアンサー
- その他MS Office製品
- [VBA Excel] 2系列の散布図を書いてみるとおかしくなります・・・
Excel 2007とVBAで数値解析をしています。計算結果のグラフを表示するための準備段階として、次のようなプログラムを組んで、2系列の散布図を書いて見ました。 Option Explicit Sub makechart() Dim chart1 As ChartObject, wsh As Worksheet Set wsh = Sheet1 Set chart1 = wsh.ChartObjects.Add( _ 10, 20, 250, 200) With chart1.Chart .ChartType = xlLineStacked .SeriesCollection.NewSeries .SeriesCollection(1).XValues = _ wsh.Range("A1:A5") .SeriesCollection(1).Values = _ wsh.Range("B1:B5") End With With chart1.Chart .SeriesCollection.NewSeries .SeriesCollection(2).XValues = _ wsh.Range("A1:A5") .SeriesCollection(2).Values = _ wsh.Range("C1:C5") End With End Sub --sheet1-- A B C ----------- 1| 1 2 3 2| 2 3 4 3| 3 4 5 4| 4 5 6 5| 5 6 7 系列1のグラフはB列 対 A列という意図通りのものになったのですが、系列2のグラフは、Y軸の値が、C列の値にB列の値を足したもの (1,2+3)、(2,3+4) ・・・ になってしまいました。系列2のグラフも純粋にC列 対 A列したいのですが、そのためにはどうすれば良いでしょうか。ご教授ください。
- ベストアンサー
- Visual Basic
- Excel2007の散布図についてですが...
Excel2007の散布図についてですが... 何分2007に慣れておりません。1行目に数字がAからIまで並び、5行目にそれに対応する結果が同じくAからIまで並んでいた場合ですが、[挿入]を選択するとグラフの部分の選択が出てきて散布図を選ぶと散布図がかけます。ところでこれが1行目が横軸、5行目が縦軸の散布図となります。1行目を縦軸に、5行目を横軸にするグラフに入れ替えたいのですができません。こんな簡単なはずの操作で困っております。ご教授下さい。
- ベストアンサー
- その他MS Office製品
- エクセルの散布図の作成で…
エクセルの散布図の作成で… こんにちは。エクセルの散布図の作成で、 横軸が同じ二つのデータを、二種類の縦軸をつかって一つの 散布図に表したいです。 図の縦軸Aを左側に、縦軸Bを右側に表して、一つの図にまとめ たいのです。 ソフトはマイクロソフトオフィス2007です。 作成方法、あるいはそれが乗っているサイトなどご紹介いただける とたすかります。よろしくお願いいたします。
- ベストアンサー
- その他MS Office製品
- excelの散布図
散布図を使ってグラフを作成するにいたって、初歩的なことかもしれませんがどうしてもわからないことがあります。 横軸に時間、縦軸に移動距離をとるとします。 例えば横軸に20分、40分...100分と 20分毎のデータをプロットします。 その時、横軸の最小値を0分ではなく、例えば15分にする必要があるとします。 そこで、 (A) 横軸の最小値を15分にしてしまうと、軸目盛りの表示が15分、35分...115分のように表示されてしまい、20分、40分...100分という表示ではなくなります。 また、 (B) 縦軸との交点を15分にすることで、横軸目盛りの20分、40分...100分という表示は維持できますが、その場合0分から15分の部分が縦軸に対して左側にあり、不恰好です。 これを解決したいのですが、どうかよろしくお願いします。 ペイントで作成した理想的な画像を添付しておきます。
- 締切済み
- オフィス系ソフト
- EXCEL VBAで散布図の作成
EXCELのVBAを使って散布図を作成したいと考えているのですがどのようにVBAを組めばいいか悩んでいます。 時間 温度A 温度B ・・・・ 11:00 15 14 ・・・・ 12:00 16 18 ・・・・ 13:00 18 19 ・・・・ というデータがあります。 これをフォームなどで選択した項目だけを 散布図(横軸:時間 縦軸:温度)にしたいのですが きっかけや考え方だけでも教えてください。 お願いします。
- ベストアンサー
- Visual Basic
- Excel VBAの散布図について
Excel VBAで散布図を作ろうと考えています。 元のデータは添付した画像のものです。 左端にXの値があって、それ以降7列ごとに8枚の散布図を作成しようと考えております。 そこで、kを1~8まで動かし8種類の散布図を作成しようと考えているのですが、このマクロではk=1だけプログラムを回しただけで、一枚のグラフにすべての系列が載ってしまいます。 kを動かさずに、Cellの位置を指定して回した際にはうまくいったのですが、kを動かすようにしたところうまくいきません。 散布図を作る際に系列の数(私の場合7種類)を指定するにはどうしたらよいでしょうか。 どなたかご教授ください。 For k = 1 To 8 ActiveSheet.Shapes.AddChart.Select ActiveChart.ChartType = xlXYScatter ActiveChart.SeriesCollection(1).Name = Sheets("Voltammogram").Cells(10, -5 + 7 * k) ActiveChart.SeriesCollection(1).XValues = "=Voltammogram!$A$12:$A$250" ActiveChart.SeriesCollection(1).Values = Sheets("Voltammogram").Range(Cells(12, -5 + 7 * k), Cells(250, -5 + 7 * k)) ActiveChart.SeriesCollection(2).Name = Sheets("Voltammogram").Cells(10, -4 + 7 * k) ActiveChart.SeriesCollection(2).XValues = "=Voltammogram!$A$12:$A$250" ActiveChart.SeriesCollection(2).Values = Sheets("Voltammogram").Range(Cells(12, -4 + 7 * k), Cells(250, -4 + 7 * k)) 以降7列まで続きます。
- ベストアンサー
- その他MS Office製品
- VBA 散布図 系列名 設定あるいは削除
以下のように複数データ範囲を選択して、散布図を作成しており、 セルA2とB2に入力した数値からデータ範囲を設定しています。 しかし、実行すると、系列1~i以降に系列i+1~がだらだらと続いてしまいます。 系列i+1以降をを削除するか、ちゃんと1~iまで系列のみ表示させるにはどのようにしたら良いのでしょうか。 どうぞ宜しくお願い致します。 Dim i As Variant i = Range("A2").Value Dim j As Variant j = Range("B2").Value Dim k As Variant k = i Dim l As Variant l = j Dim ChartObj As ChartObject Dim ChartOne As Chart Set ChartObj = ActiveSheet.ChartObjects.Add(1260, 100, 350, 240) Set ChartOne = ChartObj.Chart With ChartOne .ChartType = xlXYScatterLines .HasTitle = True .ChartTitle.Text = Range("C3").Value .HasLegend = True .Legend.Position = xlLegendPositionRight With .Axes(xlValue, xlPrimary) .HasTitle = True .AxisTitle.Text = Range("D3").Value End With With .Axes(xlCategory, xlPrimary) .HasTitle = True .AxisTitle.Text = Range("E3").Value End With For k = 1 To i For l = 1 To j ChartOne.SeriesCollection.NewSeries ChartOne.FullSeriesCollection(k).Name = Cells(5, k + 10) ChartOne.FullSeriesCollection(k).XValues = Range(Cells(5, k + 30), Cells(4 + l, k + 30)) ChartOne.FullSeriesCollection(k).Values = Range(Cells(5, k + 50), Cells(4 + l, k + 50)) Next Next End With
- ベストアンサー
- Excel(エクセル)
- VBAで散布図を作成したのですが・・・
VBAで散布図を作成したいのですがうまくいかないで困っています。 この散布図はA行とB行をそれぞれ軸として指定しているのですがうまくX軸、Y軸に指定されず2本のグラフが表示されてしまいます。 また範囲指定をC1を変数としてA1からB○まで取りたいのですが最初の範囲指定はうまくいったのですが最後の行の指定がうまくいかずエラーになってしまいます。 (○は"C1の値+4"にしたいのです。) よろしければ何かヒントでもいいので教えていただけないでしょうか?よろしくお願いします。 (私が書いたVBA↓) Sub chart1() Dim sh1 As Worksheet Set sh1 = Worksheets("Sheet1") Dim i As Integer i = Range("C1").Value + 4 Range(Cells(1, 1), Cells(i, 2)).Select Charts.Add ActiveChart.ChartType = xlXYScatterSmooth ActiveChart.SetSourceData Source:=Sheets("Sheet1").Range(Cells(1, 1), Cells(i, 2))
- ベストアンサー
- オフィス系ソフト
お礼
どうもありがとうございます! きれいにできました。 変数の型が全然理解できていないのですが、 ひとつひとつ勉強していこうと思います。 助かりました。