Excel VBA質問箱 IV

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

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


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

【8222】Charts Sheet名にうまく番号をふるには? とろろこんぶ 03/10/4(土) 12:21 質問
【8223】Re:Charts Sheet名にうまく番号をふるには? Kein 03/10/4(土) 16:00 回答
【8237】Re:Charts Sheet名にうまく番号をふるには? とろろこんぶ 03/10/5(日) 21:16 お礼

【8222】Charts Sheet名にうまく番号をふるには?
質問  とろろこんぶ  - 03/10/4(土) 12:21 -

引用なし
パスワード
   こんにちは。

BOOK1に異なったChartが数枚と
グラフのソースとなるワークシートがあるとします。
このBOOKに入っている「グラフの種類」は、
折れ線、棒グラフ、散布図とします。
折れ線グラフのChartシートの名前には頭に「折れ線」、
棒グラフのChartシートの名前には頭に「棒グラフ」、
散布図グラフのシートの名前には頭に「散布図」
としています。

BOOK2には、グラフを作成するマクロが入っていて、
それを実行するとグラフ作成ができるようになっています。
BOOK1に関して、BOOK2のマクロでグラフを作成すると、
Chartシートが増えていきます。
よって、Chartシート名の後に番号をふろうと思います
(ex.折れ線1、折れ線2・・・・、棒グラフ1、棒グラフ2・・・のように)。

今、Chartsシート名は何かをチェックして番号をふっていくようにしていますが、
新たに番号をふっていこうとすると、
既に番号が振られた同じChartシート名があると、マクロがストップしてしまいます。

'(↓こんなかんじにしています)
Dim i, j As Integer
'既にChart("折れ線")がある場合 
  j = 0
  For i = 1 To ActiveWorkbook.Charts.Count
    Charts(i).Select
    If Left(Charts(i).Name, 3) = "折れ線" Then
      j = j + 1
      Charts(i).Name = "折れ線" & j
    End If
  Next i
'(グラフ作成のマクロは省略)

マクロがストップせずにうまく番号をふっていく方法はありませんか。

ご教授願いたいとおもいます。

【8223】Re:Charts Sheet名にうまく番号をふるには...
回答  Kein  - 03/10/4(土) 16:00 -

引用なし
パスワード
   >折れ線、棒グラフ、散布図とします。
>折れ線グラフのChartシートの名前には頭に「折れ線」、
>棒グラフのChartシートの名前には頭に「棒グラフ」、
>散布図グラフのシートの名前には頭に「散布図」
>としています。
>BOOK2には、グラフを作成するマクロが入っていて、
>それを実行するとグラフ作成ができるようになっています。
>BOOK1に関して、BOOK2のマクロでグラフを作成すると、

これはやっぱり、グラフを作成するところのコードを提示してもらわないと
Book1にチャートを追加するタイミングとか、そのシート名を変更する
タイミングが把握できないので、回答が難しいと思います。
要は、Charts.Add までに Book1 のグラフシートをループし、
同種類の名前がいくつあるかをカウントしておき、新規グラフを追加
した後、ActiveChart.Name = "折れ線" & i + 1 などと命名すれば
いいのですが、ループで取得するところは

Dim Ch As Chart
Dim i As Integer

For Each Ch In Workbooks("Book1.xls").Charts
  If Left(Ch.Name, 3) = "折れ線" Then
   i = i + 1
  End If
Next

などとするだけですが。

【8237】Re:Charts Sheet名にうまく番号をふるには...
お礼  とろろこんぶ  - 03/10/5(日) 21:16 -

引用なし
パスワード
   ▼Kein さん
こんばんは。
早速の回答ありがとうございました。

>これはやっぱり、グラフを作成するところのコードを提示してもらわないと
>Book1にチャートを追加するタイミングとか、そのシート名を変更する
>タイミングが把握できないので、回答が難しいと思います。

↑、確かにそうですね。言葉が足りなくて申し訳なかったです。

私もあれからない頭を捻って考え、
Keinさんのお言葉を参考にしたところ、何とかなりました。

ありがとうございました。

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