• ベストアンサー

VBA:グラフに関するある値を取得する関数教えて下さい。

VBAで、エクセル上にあるグラフの固有のナンバーみたいなのを取得したいのですが、どのようにすればよいでしょうか? 最終的には、グラフをクリックして、そのグラフを認識。そのグラフについて、処理(例えば、タイトルを変更など)したいと考えています。 言葉がわからず「固有のナンバー」として表現できませんが、恐らく分かる方にとっては、その取得関数は1行で書くことができる程度だと思います。 宜しくお願い致します。

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

>最終的には、グラフをクリックして、そのグラフを認識。そのグラフについて、処理(例えば、タイトルを変更など)したいと考えています。 話が見えてきませんが、グラフをクリックするなら、固有のナンバーは必要ないのではありませんか?単に、ActiveChart だけでよいはずです。グラフは、埋め込み型とグラフ・シートがありますから、多少、メソッド等が変わってきます。 埋め込み型で、複数あるのでしたら、指定するのは名前かIndex になりますが、Index か、For Each ~ In ○○ で、グラフオブジェクトを求めます。 実例: 例えば、タイトルの変更でしたら、このようにすればよいと思います。 ActiveChart.ChartTitle.Caption = "My Graph" または、 ActiveChart.ChartTitle.Text = "My Graph" 後は、埋め込み型だったら、ChartObjectsですが、複数のグラフを探すなのでしたら、 ActiveSheet.ChartObjects(i).TopLeftCell で探します。 1つしかないのでしたら、 ActiveSheet.ChartObjects(1)でよいわけです。 ですから、タイトルを換えるのでしたら、 ActiveSheet.ChartObjects(1).Chart.ChartTitle.Caption = "My Graph" ということになりますね。

その他の回答 (1)

  • AlexSuns
  • ベストアンサー率67% (78/115)
回答No.1

エクセルのVBAは普段さわらないのですが、興味ついでに調べたところ 「Worksheet」オブジェクトの「ChartObjects」コレクションにて取得できるようです '''アクティブなシート上のチャート一覧を列挙する Private Sub CommandButton1_Click()      Dim xlSheet As Excel.Worksheet   Dim chartObj As ChartObject   Dim strMsg As String      Set xlSheet = ActiveSheet      strMsg = ""   For Each chartObj In xlSheet.ChartObjects     strMsg = strMsg & chartObj.Name & vbCrLf   Next      MsgBox strMsg    End Sub >言葉がわからず「固有のナンバー」として表現できませんが これは「ChartObject」の"Name"プロパティで大丈夫でしょう

関連するQ&A