みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Excel 2000でデータ量が493行 列が「AW」迄のサイズが96

Excel 2000でデータ量が493行 列が「AW」迄のサイズが966KB グラフが2個で その内の1個(グラフ24)を マクロ(下記のコマンド)を組んで 1週間に1度 5日分ずつ移動させています
問題なく動作して使えていたのですが 此処の所でマクロ動作は完了してグラフデータも5日分移動して上書き保存できるので 正常完了だと思うのですが 次に開く時に通常より時間が掛かって「Microsoft Excel Windows」の小さな画面で「問題が発生したため、Microsoft Excel for Windowsを終了します。ご不便をおかけして申し訳有りません。」の画面が出てエラー報告を「送信しない」をクリックすると終了します 以後何度やっても同じ経過になり 結局開けなくなりました
他にコメントが何も出ず 困惑しているのですが「エラー報告に含まれるデータ」の参照とか 何かの方法で原因を調べる方法を御存知の方がいれば アドバイスを戴きたいので投稿しました
宜しくお願い致します

hjm$ = Range("a3") - 60: owr$ = Range("a4")
'
ActiveSheet.ChartObjects("グラフ 24").Activate
ActiveChart.ChartArea.Select
ActiveChart.SeriesCollection(1).XValues = "=Data!R" + hjm$ + "C1:R" + owr$ + "C1"
ActiveChart.SeriesCollection(1).Values = "=Data!R" + hjm$ + "C42:R" + owr$ + "C42"
ActiveChart.SeriesCollection(2).XValues = "=Data!R" + hjm$ + "C1:R" + owr$ + "C1"
ActiveChart.SeriesCollection(2).Values = "=Data!R" + hjm$ + "C43:R" + owr$ + "C43"
↓ (3)~(6)までのコマンド記述省略
ActiveChart.SeriesCollection(7).XValues = "=Data!R" + hjm$ + "C1:R" + owr$ + "C1"
ActiveChart.SeriesCollection(7).Values = "=Data!R" + hjm$ + "C48:R" + owr$ + "C48"
ActiveChart.SeriesCollection(8).XValues = "=Data!R" + hjm$ + "C1:R" + owr$ + "C1"
ActiveChart.SeriesCollection(8).Values = "=Data!R" + hjm$ + "C49:R" + owr$ + "C49"

投稿日時 - 2010-01-01 13:50:49

QNo.5560532

困ってます

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

回答番号:No.1のコード一部訂正です。
.Selectを外して下記のようにしてください。

ActiveChart.SeriesCollection(i + 1).XValues = .Range(.Cells(hjm&, 1), .Cells(owr&, 1))
ActiveChart.SeriesCollection(i + 1).Values = .Range(.Cells(hjm&, 42 + i), .Cells(owr&, 42 + i))

投稿日時 - 2010-01-02 11:10:38

お礼

有難う御座いました
お礼が遅くなりましたが いろいろと試してみた結論が うまくゆかなかったので
ファイルを作り直しています
新しいファイルで アドバイス戴いたコマンドを実行してみたいと思っています

投稿日時 - 2010-01-04 13:51:26

ANo.2

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

 新年おめでとうございます。

ファイルが壊れてしまったようですね。
・新規データを追加するとセルにデータが追加されて増えていくようになっているのでしょうか?
・軸の項目を毎回書き変えなくても
このBookを作成した時に1回だけ設定すればいいのでは?
(以後は、元のデータの値だけコピーして移動し、
もとのグラフ範囲に新規データを追加する)

 500行ほどで壊れるのなら
300行くらいごとに以前のものを別名で保存して
新しいもので収集していくようにすれば
とりあえず運用できそうです。

・保存も終了も自動で行われるとしたら
保存のための時間をシステム側に十分与えてやらないと
エクセルが終了しようとして
壊れる心配がでてくるだろうと思います。

投稿日時 - 2010-01-02 11:14:28

お礼

アドバイスを有難う御座いました
結局うまくゆかないので ファイルを作り直しています

投稿日時 - 2010-01-04 13:53:36

ANo.1

質問に対する回答ではありません。

変数に$を付けると「文字列型」という意味だと思います。
行番号に使われていますから「整数型(%)」とか「長整数型(&)」にすべきではないでしょうか。
あと提示されたコードは下記のように整理することが出来ます。

hjm& = Range("a3").Value - 60: owr& = Range("a4").Value
ActiveSheet.ChartObjects("グラフ 24").Activate
With Sheets("Data")
For i = 0 To 7
ActiveChart.SeriesCollection(i + 1).XValues = .Range(.Cells(hjm&, 1), .Cells(owr&, 1)).Select
ActiveChart.SeriesCollection(i + 1).Values = .Range(.Cells(hjm&, 42 + i), .Cells(owr&, 42 + i)).Select
Next i
End With

ActiveChart

ActiveSheet.ChartObjects("グラフ 24")
にすればグラフを選択する(↓の行)必要はなくなります。
ActiveSheet.ChartObjects("グラフ 24").Activate

>1週間に1度 5日分ずつ移動させています
≪参考≫
Excel VBAでクリックひとつでグラフの参照を隣の列へと移してグラフの変化を確認したいのですが
http://oshiete1.goo.ne.jp/qa5524597.html

投稿日時 - 2010-01-02 11:07:26

あなたにオススメの質問