Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


6863 / 13646 ツリー ←次へ | 前へ→

【42676】作成したグラフに名前を付けるには? カド 06/9/19(火) 10:38 質問[未読]
【42678】Re:作成したグラフに名前を付けるには? わさび 06/9/19(火) 11:46 回答[未読]
【42682】Re:作成したグラフに名前を付けるには? カド 06/9/19(火) 12:25 発言[未読]
【42679】Re:作成したグラフに名前を付けるには? 通りすがり 06/9/19(火) 11:46 発言[未読]
【42680】Re:作成したグラフに名前を付けるには? Jaka 06/9/19(火) 11:50 発言[未読]
【42691】Re:作成したグラフに名前を付けるには? カド 06/9/19(火) 14:33 お礼[未読]
【42681】Re:作成したグラフに名前を付けるには? Kein 06/9/19(火) 12:10 発言[未読]
【42692】Re:作成したグラフに名前を付けるには? カド 06/9/19(火) 14:34 お礼[未読]

【42676】作成したグラフに名前を付けるには?
質問  カド  - 06/9/19(火) 10:38 -

引用なし
パスワード
   以下のコードは、セルA1〜A3に有るデータを使って棒グラフを描くマクロを記録した
ものです。

グラフを描いた後にいったんセルB1を選択し、その後グラフを選択してから
グラフを削除しました。

このような操作をすると、コード内に”グラフ 1”という言葉が記録されますが、
このマクロを実行すると、次に描かれるグラフの名前が”グラフ 1”とはならない
ためか、そこでエラーが出て止まります。

このような事態に陥いるため、グラフ等のマクロを描くときは、いつもつまずいてしまいます。

そこで、マクロ上でグラフに名前を付けてしまえば、マクロにて扱い易いと思ったのですが、
どうすれば良いのでしょうか?


 Sub Macro13()

  Charts.Add
  ActiveChart.ChartType = xlColumnClustered
  ActiveChart.SetSourceData Source:=Sheets("Sheet1").Range("A1:A3"), PlotBy:= _
    xlColumns
  ActiveChart.Location Where:=xlLocationAsObject, Name:="Sheet1"
  ActiveWindow.Visible = False
  Windows("Book2").Activate
  Range("B1").Select
  ActiveSheet.ChartObjects("グラフ 1").Activate
  ActiveChart.ChartArea.Select
  ActiveWindow.Visible = False
  Selection.Delete
End Sub

【42678】Re:作成したグラフに名前を付けるには?
回答  わさび  - 06/9/19(火) 11:46 -

引用なし
パスワード
   ▼カド さん:

>このような事態に陥いるため、グラフ等のマクロを描くときは、いつもつまずいてしまいます。
>
>そこで、マクロ上でグラフに名前を付けてしまえば、マクロにて扱い易いと思ったのですが、
>どうすれば良いのでしょうか?

私も同じようにつまづき、同じように名前を付けてしまえ!と思って解決しました(^^;

一番最初のところですね。
>  Charts.Add.Name = "○○"
○○に好きな名前をお入れください。

【42679】Re:作成したグラフに名前を付けるには?
発言  通りすがり  - 06/9/19(火) 11:46 -

引用なし
パスワード
   ▼カド さん:
>このような事態に陥いるため、グラフ等のマクロを描くときは、いつもつまずいてしまいます。

Charts.AddではなくChartObjects.Addにし、オブジェクト変数にSetするときっと幸せになれますよ。
使用例は上の検索でいくつかでますし。

【42680】Re:作成したグラフに名前を付けるには?
発言  Jaka  - 06/9/19(火) 11:50 -

引用なし
パスワード
   参考?になる??
http://www.vbalab.net/vbaqa/data/excel/log/tree_548.htm

【42681】Re:作成したグラフに名前を付けるには?
発言  Kein  - 06/9/19(火) 12:10 -

引用なし
パスワード
   グラフ・オブジェクトに限らず、シート上に配置するオブジェクトは
Indexで管理した方がずっとやりやすいです。
Indexは「配置した順&現在配置されている数」で決ります。
即ち、最初に作ったグラフは ChartObjects(1) で、次に作ったものは
ChartObjects(2)、その次は ChartObjects(3) ですが、ここでもし
ChartObjects(2)を削除したとすると、ChartObjects(1)はそのままで
ChartObjects(3)が自動的に一つ繰り上がり、ChartObjects(2)に
なります。"3"というIndexは消滅するわけです。
この仕様を覚えておけば、Excelが勝手につける名前に惑わされることなく
正しい指定が出来ます。あと、Indexは数値ですので、ループ処理にも
向いていて便利かと思います。

【42682】Re:作成したグラフに名前を付けるには?
発言  カド  - 06/9/19(火) 12:25 -

引用なし
パスワード
   ▼わさび さん 回答ありがとうございます。

名前を付けたとして、下記コードはどう変更したら良いか教えて
頂けませんか。

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

【42691】Re:作成したグラフに名前を付けるには?
お礼  カド  - 06/9/19(火) 14:33 -

引用なし
パスワード
   ▼通りすがり さん 回答ありがとうございます。

Keinさんの方法が分かり易かったので、
今回はそれを採用させていただきました。

【42692】Re:作成したグラフに名前を付けるには?
お礼  カド  - 06/9/19(火) 14:34 -

引用なし
パスワード
   ▼Kein さん 回答ありがとうございます。

おっしゃる方法でうまく行きました。

6863 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free