|
▼マナ さん:
>>当初問題なく動いていたのですが、突然
>> cho.Copy のところで
>>「指定したディメンションは、このグラフの種類では無効です。」
>>のエラーが出るようになりました。(再実行すれば作成されますし、出ないときもあります。)
>> Set cho = sh_A3.ChartObjects(1).Duplicate.Parent 'コピー元のグラフを複製
>
>DoEventsをこの次に移動あるいは追加してみてはどうでしょうか。
追加してみました。
全学校分のグラフを作るコードと、指定学校分を作るコードの2種類をグラフ元のデータ作成箇所以外、同じコードで作っておりまして、
よくよく調べたら、全学校分の方のみエラーが出ておりましたので、
改めて見比べたら、
Dim cho As ChartObjectを記載していませんでした。
記載したら発生しなくなりましたが、これが原因でしょうか。
いずれにせよ、宣言を忘れないようにします。
>>
>>それから、下記のコードでは、まれに応答なしになって落ちるため、
>
>同じデータで、応答なしになるのでしょうか。
そうだったのです・・。
>>コードの問題点等あればご指摘いただけませんでしょうか。
>
>> GYO1 = GYO ' グループの先頭行→GYO1
>> GYO = GYO + 1 ←この行は必要でしょうか?
>
Do While .Cells(GYO, 1).Value <> ""
GYO1 = GYO ' グループの先頭行→GYO1
GYO = GYO + 1 ←A
' 次の行から同じグループでない行を見つける
Do While .Cells(GYO, 1).Value <> "合計" '条件を満たしている間処理を繰り返す
GYO = GYO + 1
Loop
GYO2 = GYO ' 同じグループの最終行→GYO2
GYO = GYO + 1 ←B
〜省略〜
Loop
タイトル行、データ行、合計行のあるデータをグループ化していまして、Aはデータ行に行く処理、Bは次のグループのタイトル行に行くために記載しています。
元々 A学校のデータが複数行、B学校のデータが複数行、・・とあるときに、A学校のデータをグループ化するということをしたくて、ネットで見つけたコードです。
よく使用しているので、応用して作っておりますが、良い方法があれば教えていただけると幸いです。
(1列)
(タイトル行)質問
(データ行)A学校名
(データ行)B学校名
(データ行) ・
(データ行) ・
(合計行) 合計
※全学校分のデータ例
※指定学校分は 「質問、A学校名、合計」の3行のデータ構成だが、今後、選択した複数校のデータをもとにグラフ化したいため、汎用性のあるグループ化を行いたい。
>> .Range(.Cells(GYO1, 2), .Cells(GYO2, lastcol1 - 1)).Select
>> Set r = Selection
>ここはSelectしないで、1行にまとめてはどうでしょうか
>Set r = .Range(.Cells(GYO1, 2), .Cells(GYO2, lastcol1 - 1))
まとめてみました。ご教示ありがとうございます。
>
>グラフの個数でなく、GYOを確認してみてはどうでしょうか。
GYOを確認するよう変更してみましたが、
ご指摘いただいた点を修正したところ、繰り返しても落ちなくなりました。
何かがよかったのでしょうか??
何度もお手を煩わせてしまいましたが、何とかなりそうです。
本当にありがとうございました!
(といいつつまたお尋ねするかもしれません;。その節はご回答いただけると幸いです。)
|
|