アプリ版:「スタンプのみでお礼する」機能のリリースについて

また 質問させていただきます。

左側に表全体を範囲指定した折れ線グラフを、マクロを実行して貼り付けており
右側に表の一部を範囲指定した折れ線グラフを、マクロを実行して貼り付けます。
右の表の範囲を変更して、右の表だけを変更するマクロ作成したいと思っています。

左側のグラフの名前を変更して
Activesheet.ChartObjects(1).Name="全体グラフ"

右側のグラフの名前を変更して
Activesheet.ChartObjects(1).Name="グラフ1"

右側の折れ線グラフ(グラフ1)を削除して、範囲を変更した新たなグラフ(グラフ1に名前を変更)を貼り付けるマクロを作りましたが、右側のグラフが貼りついていない、最初のときに実行すると、削除するグラフが無いためにエラーがでてしまいます。
If を使用するのかなっと思っていますが、どのように入力すればいいのか分かりません。
教えて頂けないでしょうか。

A 回答 (3件)

Ifを使いたいならこんなカンジで。



sub macro1()
 dim o as chartobject
 if activesheet.chartobjects.count = 0 then
  msgbox "NO GRAPH"
  exit sub
 end if

 for each o in activesheet.chartobjects
 if o.name = "グラフ1" then
  o.delete
  exit for
 end if
 next

’以下新たなグラフを貼り付けて名前をグラフ1に変える
end sub
    • good
    • 0
この回答へのお礼

グラフの名前設定が悪いらしく、うまく動作しませんでした。
アドバイスをいただいたのにすみませんでした。

お礼日時:2013/04/24 15:40

はてな???




元々の情報提供:
>右側のグラフの名前を変更して
>Activesheet.ChartObjects(1).Name="グラフ1"


追加の情報:
>グラフの名前設定が悪いらしく、うまく動作しませんでした。


ご自分のマクロで付けた名前をご自分のマクロで利用できないって、いったいどういう事でしょうか。
それはマクロの構文がどうこうの問題じゃなく、あなたがご自分で作成したあなたのデータの問題です。

ご自分が書いたマクロをよく見直して、いったいどんな名前を付けているのかよく確認して正しいマクロにしてください。
    • good
    • 0
この回答へのお礼

左側のグラフの名前を変更して
Activesheet.ChartObjects(1).Name="全体グラフ"
右側のグラフの名前を変更して
Activesheet.ChartObjects(1).Name="グラフ1"
と入力は間違いなくしてますが、可変範囲設定のせいか、”全体グラフ”と入力したほうが削除されてしまいます。
そもそも、可変範囲設定してるのでグラフを貼りなおす必要もなかったみたいで、大変ご迷惑をおかけいたしました。

お礼日時:2013/04/25 17:58

グラフを削除する必要は無いと思います。


SetSourceDataで元データを書き換えてみてください。

どうしても削除したいのなら現状のコードを提示してみてください。
    • good
    • 0
この回答へのお礼

グラフ名前設定が原因で、うまく動作しませんでした。
アドバイスをいただいたのにすみませんでした。

お礼日時:2013/04/24 15:42

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!