[[20041224011323]] 『既成グラフをマクロでアクティブ化する際に』(よし) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『既成グラフをマクロでアクティブ化する際に』(よし)

どなたか教えて頂けないでしょうか?
棒グラフをエクセルで作成し、マクロでそのグラフを操作するためにアクティブ化する際に、例えば以下のような表現になってます(マクロの記録で確認)。

ActiveSheet.ChartObjects("グラフ3").Activate

もとの棒グラフをコピーペーストして5つぐらいグラフを作っておりまして、マクロで5つのグラフを順番にアクティブ化していきたいです。
その際にFor分を使って、マクロで順にグラフを操作していきたいのですが、"グラフ3"とい名前がネックになってます。このグラフに自動で付けられた名前("グラフ3")をマクロ以外で変えることは可能でしょうか?

どなたか教えて頂けると幸いです。


 グラフをどのように操作していきたいかはわかりませんが、以下のようなことで
 対応できますでしょうか。
Sub Test()
    For Each MyObj In ActiveSheet.ChartObjects
        MyName = MyObj.Name 'グラフ名の取得
        MyObj.Delete     'グラフの削除
    Next MyObj
End Sub

 (川野鮎太郎)

 前に似たような事があったなぁという事で発掘…
[[20041013115123]]『グループ化したグループ名の固定』(ちづ) 
(ご近所PG)

 ご回答ありがとうございます。
 基本的に、マクロ素人なので、(川野鮎太郎)さんと(ご近所PG)さんのアドバイスが完全に
 理解できてない所もあると思いますが、上手くいきません。
 グラフを操作したい内容ですが、5つのグラフのタイトルを順にマクロで自分の好きな名前に
 変えていきたいです。
 5つのグラフは1つのシート内にあります。最初のグラフをコピーペーストして他の4つを作
 成しているせいかグラフのプロパティ的な名前が勝手に"グラフ3"、"グラフ9"・・・などと付
 けられています。
 マクロでグラフのタイトルを順に変えていくには、順にグラフをアクティブ化して順にタイト
 ル変更していけばよいのかなと考えてます。
 その際にFor文などを使って、順にグラフをアクティブ化→タイトル名変更、と繰り返し処理
 したいと考えているのですが、グラフの名前が適当な名前ではないため、それができません。

 例えば、
 For i=1 To 5
    ActiveSheet.ChartObjects("グラフ"& i).Activate
    ・・・
  ・・・
 Next
 としたいです。
 そこでグラフの名前が、"グラフ1""グラフ2""グラフ3"...と自分で変更できないものかな〜と
 思いまして質問させて頂いた次第です。
 素人的な質問ですみません。
 ご回答頂けると幸いです。
 (よし)


 カタカナ使うと番号の規則が変になるみたいですね。
 これでやったら上手くいきました。
Sub Test()
    i = 1
    For Each MyObj In ActiveSheet.ChartObjects
        MyObj.Name = "Chart " & i
        i = i + 1
    Next MyObj
End Sub

 全てのグラフのタイトルを変えるのであれば、以下のようなことでも可能のようです。
Sub Test1()
    For Each MyObj In ActiveSheet.ChartObjects
        With MyObj.Chart
            .HasTitle = True
            .ChartTitle.Caption = "川野鮎太郎"
        End With
    Next MyObj
End Sub

 (川野鮎太郎)

 ご回答ありがとうございます。
 私の応用がきかないせいか、すぐには理解できてません。
 For Each MyObj In ActiveSheet.ChartObjects
 の使い方についてもっと勉強したいと思います。
 (よし)

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.