プロが教える店舗&オフィスのセキュリティ対策術

初心者です。ご指導をお願いします。

ブックに20枚程度のグラフシートがあります。
これらの設定をまとめて行いたいのですが、全てに同じではなく、このうちの一部のグラフシートを選んで設定したく思います。
例えば、1枚だけなら、

With Chart(5)
各種設定
End With

でいいかもしれませんが、決まった複数シートを、Withの後ろにどのように書くか分かりません。
無理だとは思いつつも以下のように書きましたが失敗です。

With Charts(5),Charts(9),Charts(12) とか
With Union(Charts(5),Charts(9),Charts(12)) とか。

説明が下手ですみません。イメージとしては上記のようなことです。

【質問1】このように複数の特定グラフシートを選択する方法をご存知の方、教えていただけませんか。

なお、今回は仕方が無いので以下のように処理しました。

Dim k As Integer
For k=1 to Charts.Count
   Select Case k
      Case 5,9,12
         Charts(k).PlotArea.Interior.ColorIndex=5
   End Select
Next k

【質問2】お詳しい方から見て、上記の処理方法は望ましいですか。一応意図したとおりに作動しました。

いろいろと調べてみましたが分かりませんでした。なにとぞご教示をお願いいたします。

A 回答 (2件)

Dim it As Chart


For Each it In Charts(Array(5, 9, 12))
it.PlotArea.Interior.ColorIndex = 5
Next
    • good
    • 2
この回答へのお礼

早速のご回答有難うございます。
まさにズバリのご回答でした。
Arrayを用いるのですね。
大変助かりました。有難うございます。

お礼日時:2008/01/08 23:36

20個のシートの内、プログラムで指定を固定して良いなら


マクロの記録をとって見て色々試行して考えると
Sub Macro2()
Range("A1").Select
Dim obj As Object
ActiveSheet.Shapes.Range(Array("Chart 1", "Chart 2", "Chart 3")).Select
For Each obj In Selection
obj.Activate
ActiveChart.PlotArea.Select
Selection.Interior.ColorIndex = 6 'xlNone
Next

End Sub
(1)Arrayで複数のシート内グラフを指定できる
(2)それぞれのグラフを1つづつActivateしないとだめなので
For Each Nextで繰り回すことが必要
との私なりの結論になりました。
(3)以上はグラフの名前でArray化してますが、Index番号でArray
化する方法は、質問者さんと同じ発想で
Sub Macro4()
Sheets("Sheet1").Activate

Dim obj As Object
For Each obj In ActiveSheet.ChartObjects
Select Case obj.Index
Case 1, 3

obj.Activate
ActiveChart.PlotArea.Select
Selection.Interior.ColorIndex = 6 ' xlNone
End Select
Next

End Sub

もっと簡潔な方法の回答が出るかもしれません。
    • good
    • 0
この回答へのお礼

早速のご回答有難うございます。
ちょっとトライしてみたところ、埋め込みグラフにおける処理をご教示いただいたのでしょうか。
私の質問文も言葉足らずだったかもしれませんが、グラフだけになってるシート(データ範囲を指定してF11で出来るもの)の処理を知りたかったのです。
でも、埋め込みグラフに関する部分も大変勉強になりました。Macro2、Macro4 とも、埋め込みグラフを試作してトライしてみました。しっかりと作動しました。有難うございます。

お礼ついでで恐縮ですが、もう一つだけお付き合いいただけませんか。
ご回答の Macro2 の冒頭で、A1をSelectしている理由は何でしょうか。
試しにこの一文をコメントブロックして実行しても作動しました。
お忙しいとは存じますが、よろしければ教えてください。

お礼日時:2008/01/08 23:48

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A