• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excel VBAでグラフを作成したい)

Excel VBAでグラフを作成したい

kkkkkmの回答

  • kkkkkm
  • ベストアンサー率65% (1606/2443)
回答No.1

以下のようにしてください。 Sub グラフ作成() With Worksheets("sheet1").ChartObjects.Add(230, 10, 250, 180).Chart .SetSourceData Source:=Range("A3").CurrentRegion .ChartType = xlColumnClustered End With End Sub

diwk85
質問者

お礼

早速のご回答ありがとうございます。 作成できました。 原因につきましては、説明頂きましたが、知識不足でなるほどそういうことなのか、というようには行きませんが 勉強します。 有難う御座いました。今後ともよろしくお願いいたします。

関連するQ&A

  • グラフの削除をExcelVBAで行う

    こんばんは。同じシートの中にグラフを3つ作成し、 コマンドボタンを押すとグラフを削除し、新しいグラフを作成するようにしたいのですが、グラフの3つ目を削除のしようとするとエラーが発生してしまいます。 2つ目までは順調に消えるのですが、3つ目のグラフが削除されないのはなぜなのでしょうか。 色々教えていただき何とか形になってきたのですが、確認すると色々とぼろがでてきてしまい、困っています。 どなたか教えていただけないでしょうか。 宜しくお願い致します。 Sub Glafu() Dim chartobj As ChartObject Worksheets("ABC").Activate ActiveSheet.ChartObjects(1).Delete ActiveSheet.ChartObjects(2).Delete ActiveSheet.ChartObjects(3).Delete Set chartobj = Worksheets("ABC").ChartObjects.Add(600, 0, 300, 200) chartobj.Chart.SetSourceData Worksheets("ABC").Range(Range("b2").End(xlDown), ActiveCell.End(xlToRight)) With Worksheets("ABC").ChartObjects(1).Chart .HasTitle = True .charttaitle.Text = "タイトル1" End With Set chartobj = Worksheets("ABC").ChartObjects.Add(600, 200, 300, 200) chartobj.Chart.SetSourceData Worksheets("ABC").Range(Range("e2").End(xlDown), ActiveCell.End(xlToRight)) With Worksheets("ABC").ChartObjects(1).Chart .HasTitle = True .charttaitle.Text = "タイトル2" End With Set chartobj = Worksheets("ABC").ChartObjects.Add(600, 400, 300, 200) chartobj.Chart.SetSourceData Worksheets("ABC").Range(Range("h2").End(xlDown), ActiveCell.End(xlToRight)) With Worksheets("ABC").ChartObjects(1).Chart .HasTitle = True .charttaitle.Text = "タイトル3" End With End Sub

  • VBA グラフを複数作成する場合

    マクロにてグラフを複数作成しようと考えています しかし、ループを使用してグラフを作成すると 1つ以上の場合エラーになってしまい作成できません どのように作成したらよいのでしょうか? 2つ目以降のグラフObjectの名前が重なるからエラーになるとか、そういう部分での問題でしょうか? ------------------------------------- Sub Graph   For i = 1 To 2 'source_cnt   Call Make_Graph(引数)   Next End Sub ------------------------------------- Sub Make_Graph(引数) With ActiveSheet.ChartObjects.Add( _ Left:=Range(***).Left, _ Top:=Range(***).Top, _ Width:=Range(***).Width, _ Height:=Range(***).Height) .Chart.ChartType = xlRadar .Chart.SetSourceData Source:= Range(***), PlotBy:=xlColumns .Chart.Location Where:=xlLocationAsObject, Name:=WorkSheet.Name .Chart.HasLegend = False End With -------------------------------------

  • ExcelのVBAの保護をかけた時のグラフについて教えてください。

    グラフにタイトルを設定した後、保護をかけると「ChatクラスのHasTitleプロパティを設定できません」といわれてしまい、.HasTitle=Trueで止まってしまいました。シートの保護をかけても動くようにしたいのですが、どうしたらよいのでしょうか。 (保護しなければ通常に動きます。) 'グラフをオブジェクトで配置 set chartObj=worksheets("Sheet1").ChartObjects.Add(200,0,300,200) chartObj.Chart.SetSourceData Worksheets("Sheet1").range(range("b4").End(xlDown),ActiveCell.end(xlToright)) 'タイトルをつける with worksheets("Sheet1").ChartObjects(1).Chart .HasTitle=True .ChartTitle.Text="タイトル" End with 保護をかけてもグラフの作成ができるのに、タイトル部分で止まってしまうのはなぜでしょうか。 よろしくお願い致します。

  • Excel VBA With ~ End With

    Excel VBA With ~ End Withを使わずに記述するには Sheet1シートのセルA1,A2,B1,B2にA,B,75,25の値を入力して、 Sub test1()  With ThisWorkbook.Worksheets("Sheet1").Shapes.AddChart.Chart   .ChartType = xlBarStacked100   .SetSourceData Source:=Sheets("Sheet1").Range("A1:B2"), PlotBy:=xlRows  End With End Sub を実行すると横棒グラフが1個表示されますが、 これを、With ~ End Withを使わずに記述すると Sub test2()  ThisWorkbook.Worksheets("Sheet1").Shapes.AddChart.Chart.ChartType = xlBarStacked100  ThisWorkbook.Worksheets("Sheet1").Shapes.AddChart.Chart.SetSourceData Source:=Sheets("Sheet1").Range("A1:B2"), PlotBy:=xlRows End Sub というようになると思いますが、 実行すると縦棒が2個表示されてしまって同じ結果になりません。 なぜなのでしょうか。 test1を、With ~ End Withを使わずに記述するには、 どのように記述すればよいのでしょうか。 よろしくお願いします。(Windows10,Excel2016)

  • Excelマクロによるグラフ作成時の元データの取得について

     Excelマクロでグラフを作成したいのですが、以下(1)のように書いたら、Grp1.Chart.SetSourceData・・・のところでエラーになってしまいました。そこで、Rangeのところを(2)の様に変更したら、うまくいきました。ただ、自分としては、(1)のようにRangeの中にCellsを使う書き方でやりたいのですが、そのようにはできないでしょうか。  なお、マクロ初心者なので、簡単な表現でお願いします。 (1) Sub グラフ挿入_Macro() Set Grp1 = Sheets("グラフ1").ChartObjects.Add(10, 10, 500, 200) Grp1.Chart.SetSourceData _ Source:=Sheets("データ").Range(Cells(3, 1), Cells(10, 2)), _ PlotBy:=xlColumns End Sub (2) Sub グラフ挿入_Macro() Set Grp1 = Sheets("グラフ1").ChartObjects.Add(10, 10, 500, 200) Grp1.Chart.SetSourceData _ Source:=Sheets("データ").Range("A3:B10"), _ PlotBy:=xlColumns End Sub

  • エクセルVBAのMultipageの使い方について

    MultipageにそれぞれImagecontrolを張り付けて エクセルで自動作成したマーカー付折れ線グラフを 表示させるマクロを書いてみたんですが 2Pageまでは、上手く動作するんですが3page目をクリックしても 全く反応しません。何がおかしいのかどなたかお分かりの方 ご教授下さい。 ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ Private Sub MultiPage1_Change() Application.ScreenUpdating = False Dim chartrange As Range Me.MultiPage1.Value = 0 ActiveSheet.Range("a8").CurrentRegion.Select Set chartrange = Selection Charts.Add ActiveChart.ChartType = xlLineMarkers ActiveChart.SetSourceData Source:=chartrange, PlotBy:=xlRows ActiveChart.Location where:=xlLocationAsObject, Name:="記録" Const graphimage2 As String = "C:\Users\user\Pictures\Graph.bmp" If ActiveSheet.ChartObjects.Count = 0 Then Exit Sub ActiveSheet.ChartObjects(1).Chart.Export graphimage2 If Len(Dir(graphimage2)) > 0 Then With Image1 .PictureSizeMode = fmPictureSizeModeStretch .PictureAlignment = fmPictureAlignmentCenter .BorderStyle = fmBorderStyleNone .Picture = LoadPicture(graphimage2) End With Kill graphimage2 End If ActiveSheet.ChartObjects.Delete Me.MultiPage1.Value = 1 ActiveSheet.Range("a11").CurrentRegion.Select Set chartrange = Selection Charts.Add ActiveChart.ChartType = xlLineMarkers ActiveChart.SetSourceData Source:=chartrange, PlotBy:=xlRows ActiveChart.Location where:=xlLocationAsObject, Name:="記録" Const graphimage3 As String = "C:\Users\user\Pictures\Graph.bmp" If ActiveSheet.ChartObjects.Count = 0 Then Exit Sub ActiveSheet.ChartObjects(1).Chart.Export graphimage2 If Len(Dir(graphimage3)) > 0 Then With Image2 .PictureSizeMode = fmPictureSizeModeStretch .PictureAlignment = fmPictureAlignmentCenter .BorderStyle = fmBorderStyleNone .Picture = LoadPicture(graphimage3) End With Kill graphimage3 ActiveSheet.ChartObjects.Delete End If Me.MultiPage1.Value = 2 ActiveSheet.Range("a14").CurrentRegion.Select Set chartrange = Selection Charts.Add ActiveChart.ChartType = xlLineMarkers ActiveChart.SetSourceData Source:=chartrange, PlotBy:=xlRows ActiveChart.Location where:=xlLocationAsObject, Name:="記録" Const graphimage4 As String = "C:\Users\user\Pictures\Graph.bmp" If ActiveSheet.ChartObjects.Count = 0 Then Exit Sub ActiveSheet.ChartObjects(1).Chart.Export graphimage4 If Len(Dir(graphimage4)) > 0 Then With Image3 .PictureSizeMode = fmPictureSizeModeStretch .PictureAlignment = fmpictueralignmentcenter .BorderStyle = fmBorderStyleNone .Picture = LoadPicture(grphimage4) End With Kill graphimage4 End If ActiveSheet.ChartObjects.Delete Application.ScreenUpdating = True End Sub

  • エクセル2003のvba

    エクセル2003のvbaについて質問です 以下のようなマクロを作成したのですが Chart.SetSourceData メソッドのSheets(1)をマクロを実行した時点のアクティブシートにする方法を教えてください。 Sub グラフ() Charts.Add ActiveChart.ChartType = xlXYScatterLinesNoMarkers ActiveChart.SetSourceData Source:=Sheets(1).Range("n1:n100,q1:q100"), _ PlotBy:=xlColumns ActiveChart.Location Where:=xlLocationAsNewSheet With ActiveChart.Axes(xlValue) .HasMajorGridlines = False End With ActiveChart.HasLegend = False end sub

  • ローソク足チャートを表示したいのですが

    ローソク足チャートを表示したいのですが、下記(A)のように記述するとエラーが出てしまいます。 (.ChartType=xlStockOHLCの部分がエラーになります) 他の線グラフを表示する際に(B)のように記述しており、こちらではエラーは出ないのですが・・・ (A)はどこがおかしいのでしょうか。データは、C列始値、D列高値、E列安値、F列終値となっています。 よろしくお願いします。(EXCEL2000使用) (A)ローソク足(エラーが出る) With Activesheet.Chartobjects.Add (200,200,200,100).Chart   .ChartType=xlStockOHLC   .Setsourcedata Source:=Range("C10:F20"), _ PlotBy:=xlColumns End With (B)線グラフ(適正) With Activesheet.Chartobjects.Add(200,200,200,100).Chart   .ChartType=xlLine   .Setsourcedata Source:=Range("F10:F20") End With

  • VBA:2つの異なるシートからグラフを作成する

    VBA初心者です。(はじめてから3日目。。。) もしかすると、すごい簡単なことなのかもしれなくて申し訳ないのですが、質問させてください。 二つの異なるシートのデータを使って、円グラフを作製しようとしています。 ですが、「アプリケーション定義またはオブジェクト定義のエラー」が出てしまいます。 どこが間違っているのかをご教授願えませんでしょうか。 よろしくお願いします。 Sub graph() Charts.Add With ActiveChart .ChartType = xlPie .SeriesCollection(1).XValues = Worksheets(1).Range(Cells(2, 3), Cells(2, 5)) .SeriesCollection(1).Values = Worksheets(2).Range(Cells(3, 2), Cells(3, 4)) .SeriesCollection(1).Name = Worksheets(1).Cells(1, 1) .Location where:=xlLocationAsObject, Name:="sheet3" End With End Sub ちなみに、各セルにはちゃんとデータが入っております。 よろしくお願いいたします。

  • VBAでのグラフ作成時の色づけ方法

    VBAを使用して散布図を作成しているのですが、 その散布図のマーカーの色をすべて同じ色にするプログラムを考えています。 以下のプログラムを実行してみたのですが色が変更されないため、 どなたか教えていただけると嬉しいです。 よろしくお願いします。 Sub グラフ作成と色づけ() Dim i As Integer With Sheet1.ChartObjects.Add(100, 50, 300, 200).Chart .ChartType = xlXYScatter .SetSourceData Source:=Sheets("sheet1").Range("C2:DD4465") .HasTitle = True .ChartTitle.Characters.Text = "気温変化" .HasLegend = False .HasDataTable = False For i = 1 To 105 .SeriesCollection(i).Interior.ColorIndex = 3 Next i End With MsgBox ("FINISH") End Sub