Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


8459 / 13644 ツリー ←次へ | 前へ→

【33004】散布図の系列を削除したい。 Hisashi 05/12/28(水) 18:46 質問[未読]
【33056】Re:散布図の系列を削除したい。 ni 05/12/30(金) 18:22 発言[未読]
【33180】Re:散布図の系列を削除したい。 Hisashi 06/1/4(水) 17:35 お礼[未読]
【33191】報告 Hisashi 06/1/4(水) 19:50 発言[未読]

【33004】散布図の系列を削除したい。
質問  Hisashi  - 05/12/28(水) 18:46 -

引用なし
パスワード
   はじめまして。VBAはまだ始めたばかりです。
散布図の系列(2)を削除したいのですが"Deleteメゾッドが失敗しました。"とエラーが出てしまいます。コマンドは

ActiveChart.SeriesCollection(2).Delete

です。これはどうしてなのでしょうか?
もちろんこのマクロを実行するときには、系列(2)は存在し、グラフ領域がSelectされています。

【33056】Re:散布図の系列を削除したい。
発言  ni  - 05/12/30(金) 18:22 -

引用なし
パスワード
   こんにちは

こちらでは再現できませんでした。
散布図に系列が2つある状態で、
グラフを選択して
Sub Macro1()
  ActiveChart.SeriesCollection(2).Delete
End Sub
で、削除できました。
系列1を削除して、系列2しかないときに実行すると、
「'SeriewsCollection' メソッドは失敗しました」になります。

新しいグラフでも、同じエラーでしょうか?

【33180】Re:散布図の系列を削除したい。
お礼  Hisashi  - 06/1/4(水) 17:35 -

引用なし
パスワード
   返信が遅れてしまい申し訳ありません。
もう一度最初からやり直してみたところ、正常に削除できました。
なぜ最初は削除できなかったのか、いろいろやってみたのですが、
こちらの不手際で最初の状態を再現できなくなってしまい、
結局わかりませんでした。
せっかく答えていただいたのに、再現できなくなってしまい申し訳ありません。
ただこちらの掲示板の【17781】でも系列の削除に失敗し
【17784】で系列の削除を回避しているようです。
返答いただき本当にありがとうございました。

【33191】報告
発言  Hisashi  - 06/1/4(水) 19:50 -

引用なし
パスワード
   Range(origin, origin.Offset(ActiveSheet.UsedRange.Rows.Count, 1)).Clear
ActiveChart.SeriesCollection(currentseries).Delete

としていたところを

ActiveChart.SeriesCollection(currentseries).Values = "={1}"
ActiveChart.SeriesCollection(currentseries).XValues = ""
ActiveChart.SeriesCollection(currentseries).Delete
Range(origin, origin.Offset(ActiveSheet.UsedRange.Rows.Count, 1)).Clear

とすることでうまくいきました。
origin, origin.Offset(ActiveSheet.UsedRange.Rows.Count, 1)には
散布図のxの値とyの値が羅列されています。

どうやら系列を削除する前にSeriesCollection(currentseries).Valuesと
SeriesCollection(currentseries).XValuesを初期化しないと駄目なようです。
また、先にその領域にある数字の羅列をクリアしてしまうと
.Valuesや.XValuesを設定できなくなってしまうようです。

8459 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free