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

散布図の軸を入れ替える方法を考えています。(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

以上です。

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

どうもありがとうございます!
きれいにできました。
変数の型が全然理解できていないのですが、
ひとつひとつ勉強していこうと思います。
助かりました。

お礼日時:2009/01/07 22:23

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