エクセルVBAでグラフの線とマーカを設定する方法

このQ&Aのポイント
  • エクセルVBAでグラフの線とマーカの設定方法について説明します。
  • グラフの線は無しでマーカの線が有りにする方法について紹介します。
  • 実際にコードを記述しても、グラフの線が表示されてしまう問題について解決策を提案します。
回答を見る
  • ベストアンサー

エクセルVBAでグラフの線とマーカを設定したい

エクセルVBAでグラフの線とマーカを設定したいです。 グラフの線は無しでマーカの線が有りにしたいのですが、 マクロで記録したコードを見ると グラフの線、マーカの線ともにFormat.Line.Visibleで指定しています。 実際にコードを記述しても、以下の様になり、グラフの線が表示されてしまいます。 ChartObjects("1").Chart.SeriesCollection(10).Format.Line.Visible = msoFalse With ChartObjects("1").Chart.SeriesCollection(10).Format.Line .Visible = msoTrue .ForeColor.RGB = RGB(255, 102, 0) .Transparency = 0 End With グラフの線は無しでマーカの線が有りに設定は出来ないのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • xls88
  • ベストアンサー率56% (669/1189)
回答No.1

With ChartObjects("1").Chart.SeriesCollection(10) .Format.Line.Visible = msoFalse .MarkerForegroundColor = RGB(255, 102, 0) End With あるいは下記で折れ線のみ塗りつぶしなしになります。 Border.ColorIndex = xlNone

関連するQ&A

  • Excel マクロ グラフの線とマーカーの太さ変更

    Excel2010でのマクロで折れ線グラフをマクロで作ろうとしています。 線の太さを2.25pt、マーカーの太さを1.25ptにしたいのですが、 マクロの記録では ActiveChart.SeriesCollection(2).Select '線の太さ With Selection.Format.Line .Visible = msoTrue .Weight = 2.25 End With 'マーカーの太さ With Selection.Format.Line .Visible = msoTrue .Weight = 1.25 End With となり、同じ太さになってしまいます。 手動でデータ系列の書式設定をすると各々別の太さになるのですが、 マクロではどうすればいいでしょうか? 宜しくお願いいたします。

  • エクセルマクロのグラフ操作

    エクセルにてグラフの線の色を変えるマクロを記録し そのまま実行するとエラーになります。 (Lineメソッドは失敗しました) どこを変更すれば上手くいきますでしょうか。 '------------------------記録したマクロ ActiveSheet.ChartObjects("グラフ 1").Activate ActiveChart.Legend.Select ActiveChart.Legend.LegendEntries(1).Select With Selection.Format.Line .Visible = msoTrue .ForeColor.RGB = RGB(192, 0, 0) .Transparency = 0 End With 環境 Windows 7 Office 2010

  • 【VBA】グラフの線とマーカーの枠線

    エクセルのVBAで、グラフの線とマーカーの枠線を別々に扱いたいのですができなくて困っています。(現在はExcel2016使用しています。) 具体的には、線付き散布図でマーカーの枠線は実線で表示したいのに対し、線を変えると、マーカーの枠線も一緒に変化してしまいます。 以下のようなことは、試してみたのですが両方ともにマーカーの線も変化してしまいます。 with Activeworkbook.Activechart.seriesCollection(Int) .Format.Line.DashStyle や .Border.LineStyle マーカーのみ、または散布図のマーカーを結ぶ線の一方のみの線のプロパティを変化させる方法はありますでしょうか。 よろしくお願いいたします。

  • EXCELのVBAでの折れ線グラフの属性設定

    Microsoft Excel for Office 365を使用しています。 このEXCELでVBAを使って折れ線グラフの属性設定を行っているのですが、 折れ線グラフの線種を変更をするために With ActiveSheet.ChartObjects(j).Chart.SeriesCollection(i) .Border.Color = lineColor .Format.Line.Weight = 1.75 .Format.Line.DashStyle = lineKind .MarkerStyle = markKind .MarkerSize = markSize .MarkerBackgroundColor = markColor .MarkerForegroundColor = lineColor End With のように.DashStyleで線種を設定しているのですが、このように 設定するとマーカーの枠線の線種も変更されてしまいます。 マーカーの枠線の線種を変更せずに折れ線の線種のみを変更する 方法をご教示ください。 よろしくお願いいたします。

  • 【VBA】グラフの線とマーカーの枠線

    エクセルのVBAで、グラフの線とマーカーの枠線を別々に扱いたいのですができなくて困っています。(現在はExcel2016使用しています。) 具体的には、線付き散布図でマーカーの枠線は実線で表示したいのに対し、線を変えると、マーカーの枠線も一緒に変化してしまいます。 以下のようなことは、試してみたのですが両方ともにマーカーの線も変化してしまいます。 with Activeworkbook.Activechart.seriesCollection(Int) .Format.Line.DashStyle や .Border.LineStyle マーカーの枠線のみ、または散布図の線のみプロパティを変化させる方法はありますでしょうか。 画像のように、一方を変更させようとすると、マーカーの枠線も変わってしまい(1番上側の青線)、訳が分からなくなります。 緑線のように、マーカーの線は実線で示したいです。 よろしくお願いいたします。

  • VBAのグラフの設定について

    散布図の設定を線ありにし、かつ終点を矢印にしたいのですが、線はかけるものの、矢印の設定の時、 With Sheet1.ChartObjects("Chart").Chart.SeriesCollection(1) .Border.LineStyle = xlContinuous '線の種類(連続線) End With With sheet1.ChartObjects("Chart").ShapeRange .Line.EndArrowheadStyle = msoArrowheadOpen End With と設定すると、指定された値は境界を超えています。とでます。いくつかの方法でやりましたが、オブジェクトが対象ではないなど、エラーがどうしてもでてしまいます。どのように設定したら良いでしょうか?

  • エクセルVBA 自動設定のグラフ系列色のRGB

    VBA初級者です。 エクセルで自動設定されたグラフ系列色(点のみ、線なし)の RGBを取得するにはどうしたらいいのでしょうか? 系列色を設定する方法は以下のようにすればいいようですが。。。 ActiveSheet.ChartObjects("グラフ 1").Activate ActiveChart.SeriesCollection(1).Select    With Selection .MarkerBackgroundColorIndex = 色番号 / xlAutomatic .MarkerForegroundColorIndex = 色番号 / xlAutomatic    または、     .MarkerBackgroundColor = RGB(?,?,?) .MarkerForegroundColor = RGB(?,?,?) End With 私がやりたいことは、上のような記述でxlAutomaticで自動的に設定された ある系列の色を他の系列にも適用したいのです。もう少し具体的に言うと、 系列1,2、系列3,4、のように隣り合う系列を同色にしたいのです。 系列数が少なければ各組合せに対してRGBを設定すればいいのですが、 系列が大量になってきますと、自分でRGBを設定するのも大変で、 系列1,3,5・・・に関しては、xlAutomaticで自動設定して、その色を 系列2,4,6・・・に適用しようと思ったのですが、よくわかりませんでした。 ActiveChart.SeriesCollection(1).Select  With Selection .MarkerBackgroundColorIndex = xlAutomatic Color = MarkerBackgroundColorIndex End With ActiveChart.SeriesCollection(2).Select  With Selection .MarkerBackgroundColorIndex = Color End With などとしてみましたがダメでした。恥ずかしながら基礎を 理解できていないので詳しく説明していただけると幸いです。 よろしくお願いいたします。

  • Excelのピボットグラフの線描画でエラー

    初めて質問させていただきます。 現在Excel2010でピボットグラフを描画しています。 (ただし、利用ユーザーがExcel2010ではないため、保存形式をExcel97-2003形式で保存) 描画したグラフに対し、VBAで次のように編集を行っています。 Dim objSrs As Series With ActiveChart  For Each objSrs In .SeriesCollection   'データ要素をループ   For i = 1 To objSrs.Points.Count    With objSrs.Points(i)     .MarkerStyle = xlMarkerStyleDiamond '※実際はSelect Caseの条件で設定     .MarkerForegroundColorIndex = 29 '※実際はSelect Caseの条件で設定     'マーカーの色を変更     .MarkerBackgroundColorIndex = .MarkerForegroundColorIndex     'マーカーの線幅を設定     .Format.Line.Weight = 1.5    End With   Next i  Next objSrs End With 作成した自分の端末(Excel2010)では問題ないのですが、Excel2007が入った端末では、  .Format.Line.Weight = 1.5 の所で次のようなエラーになってしまいます。  実行時エラー '-2147417848(80010108)'  'Weight' メソッドは失敗しました:'LineFormat'オブジクト ウォッチで中を確認してみると、objSrs.Formatには値があるのですが objSrs.Format.Lineには、<アプリケーション定義またはオブジェクト定義のエラーです。> となっています。 線の幅だけではなく、 .Format.Line.ForeColor.RGB = RGB(253, 153, 153) でもエラーになります。 .Format.Lineはバージョンで、記述方法に違いがあるのでしょうか?

  • VBAによるリアルタイムグラフ作成

    あらかじめ作成されている散布図のグラフにデータを追加しプロットしていきたいと思い、決められたセルに入力されたデータをVBAでグラフにプロットするところまでは何とか作れました。 追加するデータをセルに入力すると自動的に散布図にプロットする方法についてご教示頂けないでしょうか。 ◯データを入力するセル '   A列 B列 C列 '3行  p1 0.5 1.0 '4行  g1 0.8 0.7 '5行 '6行 ・ ・ ・ A列は、系列名でデータラベルとして使用 B列は、横軸 C列は、縦軸 ◯あらかじめ作っている散布図には、閾値を事前に7つのデータ系列をつかってプロットしていますので、追加されたデータのインデックスは8からになります。 ◯追加するデータ数は未知数 ◯可能でしたら、セルに入力されたデータを消すとき、グラフのデータ系列も一緒に消える よろしくお願いします。 Sub グラフ描画() '   A列 B列 C列 '3行  p1 0.5 1.0 '4行  g1 0.8 0.7 '5行 '6行 Dim chartObj As ChartObject Set chartObj = ActiveSheet.ChartObjects(1) With chartObj.Chart ' データセット .SeriesCollection.NewSeries .FullSeriesCollection(8).Name = "=Sheet1!$A$3" .FullSeriesCollection(8).XValues = "=Sheet1!$B$3" .FullSeriesCollection(8).Values = "=Sheet1!$C$3" ' マーク設定 .FullSeriesCollection(8).Format.Fill.Visible = msoTrue .FullSeriesCollection(8).MarkerStyle = xlMarkerStyleCircle .FullSeriesCollection(8).MarkerSize = 6 .FullSeriesCollection(8).Format.Fill.ForeColor.RGB = RGB(255, 0, 0) .FullSeriesCollection(8).Format.Line.Visible = msoTrue .FullSeriesCollection(8).Format.Line.ForeColor.RGB = RGB(255, 0, 0) ' データラベル設定 .FullSeriesCollection(8).ApplyDataLabels .FullSeriesCollection(8).DataLabels.ShowSeriesName = True .FullSeriesCollection(8).DataLabels.ShowValue = False .FullSeriesCollection(8).HasLeaderLines = False .FullSeriesCollection(8).DataLabels.Position = xlLabelPositionAbove End With End Sub

  • Excelマクロ、散布図の線種設定

    Excelの散布図をマクロで操作するプログラムを作ろうとしています。 それぞれの系列をマーカー付きの折れ線で表示しており、 点と点を結ぶ線を破線、マーカーの枠線を実線に設定しようとしています。 しかし、マクロの記録では、 点と点を結ぶ線の設定は ActiveChart.FullSeriesCollection(1).Select With Selection.Format.Line .Visible = msoTrue .DashStyle = msoLineDash End With と記録され、マーカーの枠線の設定は ActiveChart.FullSeriesCollection(1).Select With Selection.Format.Line .Visible = msoTrue .DashStyle = msoLineSolid End With と記録され、 線種を表すmsoLineDash, msoLineSolid以外違いがなく、 実際にコードを実行しても、「点と点を結ぶ線の線種」と「マーカーの枠線の線種」が同じになってしまいます。 どうすれば 「点と点を結ぶ線の線種」と「マーカーの枠線の線種」 を別々に設定できるのでしょうか?

専門家に質問してみよう