• ベストアンサー

ExcelVBA:複数の特定のグラフを選択する方法

squipの回答

  • ベストアンサー
  • squip
  • ベストアンサー率16% (2/12)
回答No.1

Dim it As Chart For Each it In Charts(Array(5, 9, 12)) it.PlotArea.Interior.ColorIndex = 5 Next

noname#64582
質問者

お礼

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

関連するQ&A

  • エクセルVBAのグラフに関することです!助けてください!

    先日にも質問させていただいているのですが、ブック内のシート全てにグラフがあります。そのグラフの大きさを統一したいのですが、初心者でなかなかうまくいかず、どこをどのようにかえたらいいかもわかりません。サイトをみて参考に作ってみたマクロでは、一枚のシートだけうまく表示されてしまいます。私のような素人にどなたか教えていただけないでしょうか。。たいへん困っています。 Sub グラフ1() Dim ws As Variant Const MYRNG As String = ("a11:a58,d11:g58") 'データ範囲 For Each ws In ActiveWorkbook.Worksheets Charts.Add With ActiveChart .ChartType = xlXYScatterLines .SetSourceData Source:=ws.Range(MYRNG), _ PlotBy:=xlColumns .Location Where:=xlLocationAsObject, Name:=ws.Name End With With ActiveChart.PlotArea '仕切りなおし With .Border .ColorIndex = 16 .Weight = xlThin .LineStyle = xlContinuous End With .Interior.ColorIndex = xlNone End With Next ws End Sub

  • VBA グラフの事で教えて下さい!

    以前も質問させていただいたのですが、いくら調べてみても原因が分からないのでもう一度質問させてください!! 下記のコードを入力するとブック内のシート全てにグラフが表示されるのですが、1回目のマクロ実行では、グラフの表示がシートごとにバラバラで、もう一度マクロを実行するとすべてのグラフ表示が整います。 これを一回目のマクロ実行でグラフ表示を整えたいのですが、どなたかこの素人に詳しく教えて下さい!よろしくお願いいたします。 Sub グラフ1() Dim ws As Variant Const MYRNG As String = ("a11:a58,d11:g58") 'データ範囲 For Each ws In ActiveWorkbook.Worksheets Charts.Add With ActiveChart .ChartType = xlXYScatterLines .SetSourceData Source:=ws.Range(MYRNG), _ PlotBy:=xlColumns .Location Where:=xlLocationAsObject, Name:=ws.Name End With With ActiveChart.PlotArea '仕切りなおし With .Border .ColorIndex = 16 .Weight = xlThin .LineStyle = xlContinuous End With .Interior.ColorIndex = xlNone End With Next ws End Sub

  • ブック上にあるグラフの外枠を全て消したい

    シート状に複数のグラフ(散布図)が作られてます. これの輪郭線をすべて消去したいです. Excel操作でいうと「グラフエリアの書式設定」→「パターン」タブ→ 輪郭を「なし」となります. 一グラフに対して自動記録マクロをとると,次のようになります. これを,ブック上(シート上でなく)にある全てのグラフオブジェクト に対して施したいのですが,その方法がわかりません. Sub Macro1() ActiveSheet.ChartObjects("グラフ 1").Activate ActiveChart.ChartArea.Select With Selection.Border .Weight = 1 .LineStyle = 0 End With Selection.Interior.ColorIndex = xlAutomatic Sheets("Sheet1").DrawingObjects("グラフ 1").RoundedCorners = False Sheets("Sheet1").DrawingObjects("グラフ 1").Shadow = False End Sub よろしくお願い致します。

  • For Each...Next を使いブック内のシートを順次処理したいのですが。

    エクセルのマクロ初心者なのですが、先に進まなくなってしまいました。よろしくお願いします。 ブック内にシート100枚位あります。(このシートはブック毎に変動します。) 各シート上にあるデーターで、それぞれ、そのシート上に図を作成したいのですが、どうしても、それぞれのシート上にどうやって図を出したらいいのかわかりません。 For Each 各シート In Worksheets With 各シート .Activate Dim data As Range Set data = Range("B3:C2500") Charts.Add ActiveChart.ChartType = xlXYScatterLines ActiveChart.SetSourceData Source:=data ActiveChart.Location Where:=xlLocationAsObject, Name:="sheet1" ActiveChart.PlotArea.Select With Selection.Border .ColorIndex = 16 .Weight = xlThin .LineStyle = xlContinuous End With Selection.Interior.ColorIndex = xlNone End With Next あまり、内容も分かっていないのですが、このようなマクロを作ったのですが、図を”Sheet1”に出すことしかできませんでした。 どうにかして、それぞれのシート毎に図を出していきたいのですが、 アドバイスをいただけたらと思います。よろしくお願いします。

  • Excelでのグラフ作成用マクロについて。

    「新しいマクロを記録する」でグラフ作成用のマクロを作りました。 内容は、 1.sheet1のBC列を散布図でsheet2に出力。(4つほど別々のグラフを作成) 2.プロットエリアの拡大 3.図の位置調整・図の大きさ調整。(4つが重ならないように) というものです。 一応出来たのですが、何故か選択列を変更して(マクロ内の列選択を変更)出力・プロットエリア拡大までは出来るのですが、3が出来ません。 それで、分からないなりにマクロ内を覗いてみたところ、図の位置を調整する際に、対象となる図が ActiveSheet.Shapes("グラフ 17").IncrementLeft -177.75 などと言うように、グラフ17を参照してしまっているためにうまく動かないのだと思いました。 (そもそも、名前なんて付けていないはず・・・と思って調べていたら、どうやら「グラフウインドウ」で見ることが出来る名前を参照しているようでした。) いっそのこと、グラフをクリック・ドラッグで移動させるのではなく、出力する際に整然と並ぶように設定したいです。どうすればよいでしょう? 一応、作成したものを載せておきます。 ・1~2 Charts.Add ActiveChart.ChartType = xlXYScatter ActiveChart.SetSourceData Source:=Sheets("Sheet1").Range("B1:C32158"), _ PlotBy:=xlColumns ActiveChart.Location Where:=xlLocationAsObject, Name:="Sheet2" With ActiveChart .HasTitle = False .Axes(xlCategory, xlPrimary).HasTitle = True .Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "mass" .Axes(xlValue, xlPrimary).HasTitle = True .Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "counts" End With ActiveChart.HasLegend = False ActiveChart.PlotArea.Select With Selection.Interior .ColorIndex = 2 .Pattern = xlSolid End With Selection.Top = 1 Selection.Width = 323 Selection.Height = 180 Selection.Left = 15 Selection.Width = 334 Selection.Height = 194 ActiveChart.Axes(xlCategory).Select With ActiveChart.Axes(xlCategory) .MinimumScale = 0 .MaximumScale = 50 .MinorUnitIsAuto = True .MajorUnit = 5 .Crosses = xlAutomatic .ReversePlotOrder = False .ScaleType = xlLinear .DisplayUnit = xlNone End With End Sub 3. ActiveSheet.Shapes("グラフ 17").IncrementLeft -182.25 ActiveSheet.Shapes("グラフ 17").IncrementTop -105.75 End Sub

  • Excelマクロ・グラフエリア・プロットエリアのサイズを変更及び綺麗に並べる

    何方か、宜しくお願いします。 質問1 ワークシート上の複数のグラフを選択した状態でマクロを実効して 全てのグラフエリア・プロットエリアを同じサイズに変更するマクロを 教えて下さい。 (下記のコードでは、一つのグラフのプロットエリアのみ変更になります。) Sub グラフサイズ() ActiveSheet.ChartObjects("グラフ 1").Activate ActiveChart.PlotArea.Select 'プロットエリア With Selection .Top = 17 .Left = 27 .Width = 463 .Height = 330 End With Range("A3").Select End Sub (参考:http://oshiete.nikkeibp.co.jp/qa780484.html) 質問2 質問1で修正したグラフを3列、行数は任意でワークシート上に綺麗に並べたい のですが、どのようなコードでしょうか。?(グラフとグラフの間は5ポイント位 隙間を入れたいと思います。グラフ数は20~40位、Excel2000)

  • Excelでのグラフ作成用マクロについて

    Excelで、グラフ作成をするマクロを作りました。 sheet1のBC列選択→sheet2に出力→プロットエリア拡大まではうまくいったのですが、肝心の「図の位置調整・サイズ調整」が出来ませんでした。 中身を見たところ、「グラフ12」とかいう名前が勝手についていたらしく、何回やってもその名前を変更することが出来ませんでした。 参照する列を変更してグラフを作成しようとすると、次のグラフが「グラフ13」となってしまい、図の位置調整のところでエラーになります。 マクロは次のようなものなのですが、どうすれば「グラフ12」ではなく、「先ほど作ったばかりのグラフ」を参照してくれるのでしょうか? グラフ12という部分に任意の名前さえつけられれば、何とかなりそうなのですが・・・ グラフ12というものは、「グラフウインドウ」で見られるもののようです。 Charts.Add ActiveChart.ChartType = xlXYScatter ActiveChart.SetSourceData Source:=Sheets("Sheet1").Range("B1:C32158"), _ PlotBy:=xlColumns ActiveChart.Location Where:=xlLocationAsObject, Name:="Sheet3" With ActiveChart .HasTitle = False .Axes(xlCategory, xlPrimary).HasTitle = False .Axes(xlValue, xlPrimary).HasTitle = False End With ActiveSheet.Shapes("グラフ 12").IncrementLeft -182.25 ActiveSheet.Shapes("グラフ 12").IncrementTop -105.75 ActiveSheet.Shapes("グラフ 12").ScaleWidth 1.48, msoFalse, msoScaleFromTopLeft ActiveSheet.Shapes("グラフ 12").ScaleHeight 1.21, msoFalse, msoScaleFromTopLeft ActiveChart.Axes(xlCategory).Select ActiveChart.Axes(xlValue).MajorGridlines.Select ActiveChart.PlotArea.Select Selection.Top = 1 Selection.Width = 526 Selection.Height = 242 End Sub

  • セルロックをしてない箇所のセルの色をダブルクリックで変えたい

    セルロックをしてない箇所のセルの色をダブルクリックで変えたい 前に、こちらで適切な回答をいただき、大変助かりました。 よろしければ、また助けていただけるととてもありがたいです。 以下のコマンドを入れた後、シートの保護設定をすると、 「実行時エラー'1004'  アプリケーション定義またはオブジェクト定義のエラーです。」 というメッセージで弾かれてしまいます。 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Cancel = True With Target.Interior Select Case .ColorIndex Case 3 .ColorIndex = xlNone Case xlNone .ColorIndex = 33 End Select End With End Sub セルロックしていないセルを、シート保護をかけた状態で、ダブルクリックすると 色が変わるようにするには、このコードをどう書き変えたら良いでしょうか。 かなり困っています。よろしくお願いします。

  • Accessのプログラム内で、Excellのグラフ内容を変更したいので

    Accessのプログラム内で、Excellのグラフ内容を変更したいのですが、グラフ名の記述方法が分かりません。 以下のように、WkbをセットしてExcellシートを起動し、セルに書き込んだりするまではいいのですが、With行のような Wkb.Sheets("シート名").Charts("Sampleグラフ") とすると、With行でエラーになります。 特定のグラフを指定する方法を教えて下さい。 With Wkb.Sheets("シート名").Charts("Sampleグラフ") '表の範囲を変更する .SetSourceData Source:=Wkb.Sheets("シート名").Range(.cells(1, 1), .cells(5,5)), PlotBy:=xlRows 'グラフのタイトルを変更する .HasTitle = True .ChartTitle.Characters.Text = "変更後の名前" End With

  • VBAについてどなたか詳しく教えてください!!

    VBA グラフに関しての質問です。まだまだ勉強不足で分からないことがあります。お力をお貸しください。 VBAでグラフを作成しています。ブック内のワークシートすべてにグラフを表示させたいのですが・・・すべてのシートには元データが入っています。範囲指定がよくわかりません。いろいろなサイトを見て参考にしてみたのですが、このコードで実行させると 全てのワークシートにグラフが表示されるのですが、範囲指定がうまくできないという事と、グラフの大きさがそれぞれバラバラで統一されていません。範囲指定はY軸の指定が”A11:A58”X軸が”D11:G58”です。どこをどのように変えればよろしいのでしょうか?? Const MYRNG As String = "a11:g58" 'データ範囲 For Each ws In ActiveWorkbook.Worksheets Charts.Add With ActiveChart .ChartType = xlXYScatterLines .SetSourceData Source:=ws.Range(MYRNG), _ PlotBy:=xlColumns .Location Where:=xlLocationAsObject, Name:=ws.Name End With With ActiveChart.PlotArea '仕切りなおし With .Border .ColorIndex = 16 .Weight = xlThin .LineStyle = xlContinuous End With .Interior.ColorIndex = xlNone End With Next ws End Sub 私のような初心者に優しく詳しく教えてくださる方お待ちしています。質問内容もわかりにくいかもしれませんので、もし教えてくださるなら 補足入れさせていただきます。どうぞよろしくお願い致します。