- ベストアンサー
マクロで折れ線グラフの系列変更の際、EXCEL2003だと実行時エラーになります。
仕事でEXCELマクロを作成しているのですが、 折れ線グラフの系列(X軸/Y軸)の値等を変更しようとすると、 「実行時エラー'1004': SeriesクラスのXvaluesプロパティを設定できません。」 とのエラーになります。 ただし、EXCEL2007ではエラーにならずに正しくグラフが作れます。 ソースは業務上全てのせるわけにはいかないのと、 長文過ぎるため関係のありそうな部分のみ抜き出しています。 原因として考えられるものを挙げていただけると助かります。 <Version> エラー発生> ・EXCEL2003 VBA Ver6.0 ・EXCEL2003 VBA Ver6.5 正常動作> ・EXCEL2007 VBA Ver6.5 <ソース> ※かなり省略 Dim NewBook As Workbook, DataBook As Workbook Dim GraphSheet As Worksheet, MaxSheet As Worksheet Dim ChartNumber(8) As Variant, MaxChartNumber(8) As Variant 'グラフの名前 ~~~略~~~ Set NewBook = Workbooks.Add Set GraphSheet = NewBook.Worksheets(1) 'データを入れるシート定義 Set MaxSheet = Worksheets.Add() '最大値を入れるシートを追加し、定義 GraphSheet.Name = "測定データ" MaxSheet.Name = "最大値" ~~~略~~~ For m=1 to 8 MaxSheet.Activate MaxSheet.ChartObjects.Add(54 + (m - 1) * 270, 54, 270, 203).Select '新規グラフ ActiveChart.ChartType = xlLine 'グラフ種類を折れ線に指定 ActiveChart.Location Where:=xlLocationAsObject, Name:="最大値" 'グラフをオブジェクトとして、sheet1におく。 ActiveChart.SetSourceData Source:=Range("C24:C25"), PlotBy:=xlColumns 'データの範囲(適当)と方向 Set MaxChartNumber(m) = ActiveChart ~~~略~~~ Next ~~~略~~~ '最大値グラフの範囲設定 MaxSheet.Activate With MaxChartNumber(p).SeriesCollection(1) '****エラーになる部分は↓の2行。 '****エラー時、p=l=1、MStartRow=24、MstartCol=3 .XValues = Range(Cells(MStartRow, MStartCol - 1), Cells(MStartRow + l - 2, MStartCol - 1)) .Values = Range(Cells(MStartRow, MStartCol + p - 1), Cells(MStartRow + l - 2, MStartCol + p - 1)) End With ~~~略~~~ End sub
- みんなの回答 (4)
- 専門家の回答
補足
棒グラフだとグラフ作成できました! 時間がとれなくてその後に折れ線に戻す処理は試していません。 時間作って試します。 しかし値はEmptyではないのですが・・・。