初心者です。ご指導をお願いします。
ブックに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】お詳しい方から見て、上記の処理方法は望ましいですか。一応意図したとおりに作動しました。
いろいろと調べてみましたが分かりませんでした。なにとぞご教示をお願いいたします。
No.1ベストアンサー
- 回答日時:
Dim it As Chart
For Each it In Charts(Array(5, 9, 12))
it.PlotArea.Interior.ColorIndex = 5
Next
早速のご回答有難うございます。
まさにズバリのご回答でした。
Arrayを用いるのですね。
大変助かりました。有難うございます。
No.2
- 回答日時:
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
もっと簡潔な方法の回答が出るかもしれません。
早速のご回答有難うございます。
ちょっとトライしてみたところ、埋め込みグラフにおける処理をご教示いただいたのでしょうか。
私の質問文も言葉足らずだったかもしれませんが、グラフだけになってるシート(データ範囲を指定してF11で出来るもの)の処理を知りたかったのです。
でも、埋め込みグラフに関する部分も大変勉強になりました。Macro2、Macro4 とも、埋め込みグラフを試作してトライしてみました。しっかりと作動しました。有難うございます。
お礼ついでで恐縮ですが、もう一つだけお付き合いいただけませんか。
ご回答の Macro2 の冒頭で、A1をSelectしている理由は何でしょうか。
試しにこの一文をコメントブロックして実行しても作動しました。
お忙しいとは存じますが、よろしければ教えてください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
- Excel(エクセル) EXCELのグラフを画像(JPG形式)で保存、通常実行がうまく行かない。ステップインはうまく行く 3 2022/08/30 12:06
- TOEFL・TOEIC・英語検定 この本の訳まちがいではありませんか? 1 2022/11/15 11:52
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Visual Basic(VBA) 特定の文字を含むシートだけマクロ処理をしたい 1 2023/05/22 01:43
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/10/13 08:41
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2022/05/26 17:19
- その他(Microsoft Office) マクロVBAについて 1 2022/09/06 18:12
- Visual Basic(VBA) 形式を選択して貼り付け 以下のコードで「元」シートと「先」シートのA列に同じ値があったら指定範囲をコ 5 2022/11/11 07:30
- Visual Basic(VBA) マクロVBA 1シートをまとめる 閉じ方 初心者 SOS! 1 2022/06/17 14:54
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
エクセルのマクロでアクティブシート内の選択した複数のグラフのみ軸の目盛を変更
その他(Microsoft Office)
-
エクセル2010 グラフの軸の最大値最小値をセル参照する
Excel(エクセル)
-
たくさん作った同じ設定のグラフを一括して変更したい
Excel(エクセル)
-
-
4
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
5
エクセルでグラフタイトルが折り返される。
Excel(エクセル)
-
6
エクセルVBAで、条件に一致するセルへ移動
Excel(エクセル)
-
7
ユーザーフォームに入力したデータを保持する方法
Visual Basic(VBA)
-
8
エクセルグラフの一括設定。
Excel(エクセル)
-
9
Excelでエラー(#N/Aなど)値を含む範囲で最大値や最小値をもとめ
その他(Microsoft Office)
-
10
エクセルVBAでグラフのインデックスを取得したい
その他(Microsoft Office)
-
11
exeファイルの中身を見ることは可能ですか?
フリーソフト
-
12
エクセルVBAで埋め込みグラフ(ChartObjects)のアクティブ
Visual Basic(VBA)
-
13
エクセルの棒グラフで0の時、系列名を表示しない方法
Excel(エクセル)
-
14
VBA(excel)でグラフのデータ範囲の取得
その他(Microsoft Office)
-
15
エクセル グラフの軸の最小値最大値をセル参照させるマクロ
Excel(エクセル)
-
16
EXCELにてローパスフィルタを作成する
その他(教育・科学・学問)
-
17
エクセルVBAのIf,Then 構文でOr条件とAnd条件の結合方法?
Excel(エクセル)
-
18
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
19
エクセルのエラーメッセージ「400」って?
Visual Basic(VBA)
-
20
エクセル:一般的に何メガくらいの容量なら安全ですか?
PowerPoint(パワーポイント)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
特定の文字を含むシートだけマ...
-
別のシートから値を取得するとき
-
同じ作業を複数のシートに実行...
-
XL:BeforeDoubleClickが動かない
-
excelのマクロで該当処理できな...
-
ユーザーフォームに入力したデ...
-
シートが保護されている状態で...
-
ブック名、シート名を他のモジ...
-
実行時エラー1004「Select メソ...
-
VBA 存在しないシートを選...
-
API関数ImmSetConversionStatus...
-
【ExcelVBA】全シートのセルの...
-
IFステートの中にWithステート...
-
マクロを使って、シート印刷完...
-
エクセル・マクロ シートの非...
-
Excelマクロのエラーを解決した...
-
ExcelのVBAのマクロで他のシー...
-
実行時エラー'1004': WorkSheet...
-
【VBA】特定の文字で改行(次の...
-
エクセルのシート名変更で重複...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
別のシートから値を取得するとき
-
VBAで大量のファイルをシート名...
-
ユーザーフォームに入力したデ...
-
excelのマクロで該当処理できな...
-
【ExcelVBA】全シートのセルの...
-
同じ作業を複数のシートに実行...
-
VBA 存在しないシートを選...
-
Excelマクロのエラーを解決した...
-
特定の文字を含むシートだけマ...
-
実行時エラー'1004': WorkSheet...
-
XL:BeforeDoubleClickが動かない
-
シートが保護されている状態で...
-
実行時エラー1004「Select メソ...
-
【Excel VBA】Worksheets().Act...
-
ブック名、シート名を他のモジ...
-
エクセルのシート名変更で重複...
-
ExcelのVBAのマクロで他のシー...
-
Excel VBA 複数行を数の分だけ...
-
エクセルのマクロについて教え...
-
VBA 最終行まで数式をコピーする
おすすめ情報