• ベストアンサー

SeriesCollectionメソッド

グラフ設定をマクロで行っています。 ActiveChart.SeriesCollection(4).Name = "=Data!R1C7" とVBA(EXCEL2002)で記述したのですが、 ”実行時エラー'1004’ Series クラスのName プロパティを設定できません。” とエラーになります。 Collection(3) とカッコ内数値だけ変えるとエラーにならず カッコ内数字が3以下であればエラーにならずグラフ設定 ができます。 何かエラーを回避する方法はないでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • MARU4812
  • ベストアンサー率43% (196/452)
回答No.1

データ系列のコレクションを返すメソッドなわけだから、 一番有り得るのはグラフに系列が3つまでしかない場合。 4つ目が無いのではそもそも設定する必要が無い事に なります。 系列が4つ目まであるのに3つ目までは設定できて4つ目 だけ設定できないのであれば、グラフのデータに特別な ところがないか確認しました?グラフの元データを3と 4とで入れ替えて、今度は3が変更できなくなったので あれば、明らかにデータに依存してると分かります。 そのくらいまでは誰にでも調べられる事でしょう。 例えば過去、データが1点も無い場合(系列のデータが全て 空白セル)にグラフの設定を変更できないような事例はあり ました。Excel のバグと言っても良いと思いますが、一旦 適当なデータを入れておいて、設定を変更してから空白に 戻したりしてみましたが。 Excel のバージョンが古いし、自分で確認するしかない かもしれません。(少なくとも私の環境の周りにはEXCEL2002 が残ってる端末は1台もありません)

Kaza_ne
質問者

お礼

ご回答有難う御座います。 セルにあるデーターをクリアしグラフを再設定するようにしていました。データーが一点もなくエラーが出てしまっていました。 一人で煮詰まっていましたので本当に助かりました。 次回から少しでも自力でできるよう頑張ります。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • EXCELVBAグラフ凡例表示部分の系列の名称非表

    すいません。VBAの記述の方法がわからないのでお手数ですが教えてください 使用アプリ・使用OS:Excel2010 VBA Windows7 ■教えてほしい内容 グラフを作成し、その後以下のVBAでグラフの系列を追加しています。 dk = ActiveChart.SeriesCollection.Count + 1 ActiveChart.SeriesCollection.NewSeries '系列名の設定 ActiveChart.SeriesCollection(dk).Name = "cp-" & dk 'y軸の値設定 ActiveChart.SeriesCollection(dk).Values = "={" & aaa & "}" '散布図設定 ActiveChart.SeriesCollection(dk).ChartType = xlXYScatter その後、グラフの凡例部分でこの追加した系列cp-○の凡例内の系列を非表示にしたいのですがわかりません。 申し訳ありませんが教えてください。

  • excelのマクロによるグラフの指定方法

    マクロがどのように記録されるかを見ながら、VBAのスクリプトの書き方を学んでいる初心者です。 Sub Macro1() ' ' Macro1 Macro , ActiveSheet.Shapes.AddChart.Select ActiveChart.ChartType = xlLine ActiveWindow.ScrollColumn = 1 ActiveChart.SeriesCollection.NewSeries ActiveChart.SeriesCollection(1).Name = "='平均化'!$B$1" ActiveChart.SeriesCollection(1).Values = "='平均化'!$B$4:$B$18" ActiveChart.SeriesCollection.NewSeries ActiveChart.SeriesCollection(2).Name = "='平均化'!$C$1" ActiveChart.SeriesCollection(2).Values = "='平均化'!$C$4:$C$18" ActiveChart.ChartType = xlLine ActiveSheet.Shapes.AddChart.Select ActiveChart.ChartType = xlLine ActiveChart.SeriesCollection.NewSeries ActiveChart.SeriesCollection(1).Name = "='平均化'!$D$1" ActiveChart.SeriesCollection(1).Values = "='平均化'!$D$4:$D$18" ActiveChart.SeriesCollection.NewSeries ActiveChart.SeriesCollection(2).Name = "='平均化'!$E$1" ActiveChart.SeriesCollection(2).Values = "='平均化'!$E$4:$E$18" ActiveSheet.ChartObjects("グラフ 1").Activate ActiveChart.SeriesCollection.NewSeries ActiveChart.SeriesCollection(3).Name = "='平均化'!$F$1" ActiveChart.SeriesCollection(3).Values = "='平均化'!$F$4:$F$18" End Sub 以上のマクロを作成し、実行したのですが、”指定した名前のアイテムが見つかりませんでした”と出て、上手く実行されませんでした。 操作対象のオブジェクトを行き来する方法を知りたいのですが、オブジェクトを作成するたびに ActiveSheet.ChartObjects("グラフ 1").Activate のダブルクオーテーション内に当たる値が自動的に割り振られるため、この部分でエラーになることは分かりました。 つまりこの値をこちらから指定出来れば、望んだ動作をさせられるのではと考えているのですが、 どなたかご教示お願いできませんでしょうか。

  • excel2007でグラフの書式設定をするマクロ

    excel2003で作成したマクロで、excel2003上では動作するのですが、excel2007ではエラーになります。 調べた限りでは、excel2007でVBAの仕様が変わったということも無いようですが、新しくexcel2007でマクロを記録してみてもエラーになり、困っています。 マクロの内容は、グラフの系列にラベルの書式設定をするというものです。 エラー内容「'HasDataLabels' メソッドは失敗しました: 'Series'オブジェクト」 ---------------------------- Sub LabelSet() Dim col_srs As SeriesCollection Dim obj_srs As Series          Sheets("Sheet1").ChartObjects(1).Activate     Set col_srs = ActiveChart.SeriesCollection     'データ系列ごとに個々の系列名を表示     For Each obj_srs In col_srs       With obj_srs         .HasDataLabels = True         .DataLabels.ShowSeriesName = True         .DataLabels.ShowValue = True         .DataLabels.Separator = Chr(10)       End With     Next End Sub ----------------------------

  • グラフ可変範囲のデータ設定

    環境Excel2002です グラフ 1が棒グラフ2個、折れ線グラフ1個で作成されています Sheets("支社")に8支社のデータがあります グラフシートは1Sheetにしたいので グラフシートで支社を選択することにより Sheets("支社")の該当支社のグラフデータを取得します そうすると、グラフデータは可変範囲で設定することになります そのVBAが下記です ActiveSheet.ChartObjects("グラフ 1").Activate ActiveChart.SeriesCollection(1).Select With ActiveChart.SeriesCollection(1) .XValues = Sheets("支社").Range(Cells(497, i), Cells(497, i + 12)) .Values = Sheets("支社").Range(Cells(497, i + 1), Cells(497, i + 12)) End With .XValues = Sheets("支社").Range(Cells(497, i), Cells(497, i + 12)) のところで実行時エラー1004がでてしまいます エラー回避方法を教えてください

  • excel2010 マクロでの散布図作成

    excel2010で、ログを整理して複数のグラフを自動作成するマクロを作成しています 散布図の作成手順を記録した後、変数を当てなおしマクロを走らせると記録時と異なる挙動を示し、記録時にはひとつしか作成しなかった系列が25個くらい作成されました 下記マクロでおかしなところがあればご指摘ください ------------------------------ sheetname2 = ActiveSheet.Name ActiveSheet.Shapes.AddChart.Select ActiveChart.ChartType = xlXYScatterLinesNoMarkers ActiveChart.SeriesCollection.NewSeries ActiveChart.SeriesCollection(1).Name = "='" & sheetname2 & "'!$E$1" ActiveChart.SeriesCollection(1).XValues = "='" & sheetname2 & "'!$A$2:$A$" & y3 ActiveChart.SeriesCollection(1).Values = "='" & sheetname2 & "'!$E$2:$E$" & y3 ------------------------------- 作りたいグラフ:散布図 系列 「アクティブシート」のセルE1 x軸  「アクティブシート」のセルA2~A「y3」 y軸  「アクティブシート」のセルE2~E「y3」 なお、シート名を固定すると色々と問題があるため、変数としてあります また、変数y3は別途取得してありますが、省略いたします

  • マクロで折れ線グラフの系列変更の際、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

  • 散布図参照先設定時にエラーがでます(>_<)

    こんにちは 最近Excel2000でVBAを始めたばかりです。 複数の系列を持つ散布図で、それぞれの系列の 参照先を設定したいのですが、下記のコードで エラーがでてしまいます、 ActiveSheet.ChartObjects(1).Activate ActiveChart.ChartArea.Select ActiveChart.SeriesCollection(2).XValues = "=データ1!R4C5:R51C5" ActiveChart.SeriesCollection(2).Values= "=データ1!R4C4:R51C4" ←この最後の行でエラー 同一の値をVBAではなく、Excelの 「元のデータ」の「系列」で設定すると、 問題なく設定ができます。 色々試した結果、下記の二つの条件を満たした時に エラーがでるような気がします。 条件1  1以外のデータ系列の設定をしようとしている時  SeriesCollection(1)では問題ありません 条件2  Xの値、Yの値のどちらかに数値ではなく  既にセルの参照先が設定されているデータ系列に  設定しようとしている時。 参照先が「={1}」や「={2}」などと数値のみが  入力されている場合は問題ありません どなたか教えてください。 よろしくお願いしますm(_ _)m

  • Office 2003 excel vbaでグラフの種類を一系列毎に判

    Office 2003 excel vbaでグラフの種類を一系列毎に判定するマクロを組もうとしております。マクロの対象となるグラフには合計で4系列が含まれており、上から棒グラフ、棒グラフ、マーカーなしの折れ線グラフ、マーカー付のおれせんグラフとなっています。 以下のマクロを実行して、「xlbar」「xlbar」「xlline」「xlline」とメッセージが返る事を想定していたのですが、実際には「51」「51」「65」「4」とメッセージが表示されます。 どこで間違っているのかご教示いただけますと幸いです。 Sub 判定() Dim i As Integer Dim seriesCounts As Integer seriesCounts = ActiveChart.SeriesCollection.Count For i = 1 To seriesCounts MsgBox ActiveChart.SeriesCollection(i).ChartType Next i End Sub

  • エクセルのグラフのマクロでエラーが出てしまう

    グラフのマクロで Charts.Add ActiveChart.ChartType = xlColumnClustered ActiveChart.SetSourceData Source:=Sheets("個人名シート").Range(.Cells(i, 4), .Cells(i, j - 1)), PlotBy _ :=xlRows X列項目範囲 = Range(.Cells(5, 4), .Cells(5, j - 1)) ActiveChart.SeriesCollection(1).XValues = X列項目範囲 ですが、X列項目範囲が1列だけ(4と変数j-1が同じ)だと最終行で 「実行時エラー'1004'; Series クラスの XValues プロパティを設定出来ません。」と出て しまいます。どなたかご教授下さい

  • Excelマクロでグラフ作成

    現在、Excelのマクロでグラフを作成しようとしていますが、データ範囲の指定で悩んでいます。 マクロはド素人で右も左もわからない状態から、なんとなく雰囲気だけわかってきたような感じです。 とあるHPをそのまま貼り付け用シートにコピペして、そこからデータ抽出用シートにデータを抽出して蓄積していく形にしています。 品名が複数あるので、オートフィルタを使用してソートするために始点をどう決めるのかがわからないのと、データがどんどん蓄積していくために終点もどう決めたらいいのかわかりません。 「データ抽出用シート」のデータ形式は、 18行目にA:品目 B:最低値 C:平均値 D:最高値 G:日付 19行以降にデータ という形になっています。 とりあえず、通常のマクロを記録する方法でマクロの骨組みだけ作ってから細部をいじろうとしております。 データの範囲を指定する部分だけコピペしますので、ここをどういじったらいいのかご教授願います。 とある品目を指定してオートフィルタをかけた後に、グラフ作成手順のマクロを記録したら、こんな感じになりました。 Charts.Add ActiveChart.ChartType = xlLineMarkers ActiveChart.SetSourceData Source:=Sheets("データ抽出用シート").Range("L17") ActiveChart.SeriesCollection.NewSeries ActiveChart.SeriesCollection.NewSeries ActiveChart.SeriesCollection.NewSeries ActiveChart.SeriesCollection(1).XValues = "=データ抽出用シート!R19C7:R366C7" ActiveChart.SeriesCollection(1).Values = "=データ抽出用シート!R19C2:R366C2" ActiveChart.SeriesCollection(1).Name = "=データ抽出用シート!R18C2" ActiveChart.SeriesCollection(2).XValues = "=データ抽出用シート!R19C7:R366C7" ActiveChart.SeriesCollection(2).Values = "=データ抽出用シート!R19C3:R366C3" ActiveChart.SeriesCollection(2).Name = "=データ抽出用シート!R18C3" ActiveChart.SeriesCollection(3).XValues = "=データ抽出用シート!R19C7:R366C7" ActiveChart.SeriesCollection(3).Values = "=データ抽出用シート!R19C4:R366C4" ActiveChart.SeriesCollection(3).Name = "=データ抽出用シート!R18C4" ActiveChart.Location Where:=xlLocationAsObject, Name:="データ抽出用シート" 宜しくお願いします。