• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excelのピボットグラフの線描画でエラー)

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

このQ&Aのポイント
  • Excel2010で描画したピボットグラフの線を編集しようとしています。しかし、Excel2007が入った端末では、エラーが発生します。
  • VBAで線の編集を行っている際に、Excel2007での実行時エラーが発生します。エラー内容は、'Weight' メソッドが失敗しました:'LineFormat'オブジェクトとなっています。
  • 線の幅や色を編集するために、.Format.Lineのプロパティを使用しているが、Excelのバージョンによって記述方法が異なる可能性があります。

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

  • ベストアンサー
  • end-u
  • ベストアンサー率79% (496/625)
回答No.1

http://msdn.microsoft.com/en-us/library/ff838220.aspx ヘルプ > Excel 2010 開発者用リファレンス > Excel オブジェクト モデル リファレンス > Point オブジェクト > プロパティ Point.Formatプロパティ は2007から追加されたので、2007以降では動作するハズです。 提示コードだけなら、私の環境ではエラーは出ません。 (winXPsp3/xl2007sp3 12.0.6654.5003 他ver混在あり) >実行時エラー '-2147417848(80010108)' 検索してみると、色々な事例があって、オートメーションエラー..というか VBAでサポートされていないエラーみたいなので厄介そう。 #バグじゃないのかっ..て言いたくなりそうですが 試しに、ChartをActiveにしないで実行してみたらどうなるでしょう。 Sheet上のChartだったら With ActiveSheet.ChartObjects(1).Chart : グラフシートだったら With Charts(1) : など。 他にはエラーが出る端末でOfficeの更新プログラム確認したり、 参照不可項目がないか念のため確認したり。 あるいは2003用のコードを試してみたり。 Sub try()   Dim s As Series   Dim p As Point      For Each s In ActiveChart.SeriesCollection     For Each p In s.Points       p.MarkerStyle = xlMarkerStyleDiamond       p.MarkerForegroundColorIndex = 29       p.MarkerBackgroundColorIndex = 29       p.Border.Color = RGB(253, 153, 153)       p.Border.Weight = 2 '1:xlHairline,2:xlThin,3:xlMedium,4:xlThick     Next   Next End Sub

harold_rain
質問者

お礼

Window Updateを行った後、再度VBAを実行させたところ エラーになりませんでした!! 同じExcel2007でも、更新プログラムによって このような違いがあるとは、正直思っていなかったです。 やはりUpdateは大切なのですね。 大変勉強になりました。ありがとうございました。

harold_rain
質問者

補足

教えていただいたように、エラーの出る端末のOfficeの更新プログラム確認したところ、 膨大な数の更新が表示されました。 更新が行われている他の端末(Excel2007)で実行させると、エラーになりませんでした。 ということは、Officeの更新プログラムが一番怪しいですね。 まずは、Windows Updateを行いたいと思います。 そして、実行させた結果を改めてご報告させていただきます。 しばしお時間を下さい・・・。

全文を見る
すると、全ての回答が全文表示されます。

関連する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 となり、同じ太さになってしまいます。 手動でデータ系列の書式設定をすると各々別の太さになるのですが、 マクロではどうすればいいでしょうか? 宜しくお願いいたします。

  • エクセル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 グラフの線は無しでマーカの線が有りに設定は出来ないのでしょうか?

  • 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で線種を設定しているのですが、このように 設定するとマーカーの枠線の線種も変更されてしまいます。 マーカーの枠線の線種を変更せずに折れ線の線種のみを変更する 方法をご教示ください。 よろしくお願いいたします。

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

    エクセルにてグラフの線の色を変えるマクロを記録し そのまま実行するとエラーになります。 (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 マーカーのみ、または散布図のマーカーを結ぶ線の一方のみの線のプロパティを変化させる方法はありますでしょうか。 よろしくお願いいたします。

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

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

  • Excelの棒グラフのマーカーを減らす方法

    Excelで棒グラフを作成したとき、マーカーはデータ1個に対して1個付きます。対象データ数が多いときには、このマーカーが短い間隔で出るため、見にくいグラフになってしまいます。 そこで、このマーカーをデータのn個に1個だけとしたい場合には、どのようにすればよいのでしょうか? VBAを使って、マーカーを消すと言う方法はやっているのですが、データ数が多いとグラフの再描画に時間がかかるためか、全部を処理するのに非常に時間がかかってしまいます。 簡単なグラフの設定で変更することはできないでしょうか? 他のグラフ作成ソフトでは、殆どのものがこのようなマーカーを減らすことができるので、多分Excelでも設定方法があると思うのですが、見つけることができませんでした。

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

    グラフの系列設定(線種やマーカースタイル)をマクロで行おうとしていますが、 With Selection.Border .LineStyle = LST(I + 1) .ColorIndex = CID(I + 1) .WEIGHT = WGT(I + 1) End With With Selection .MarkerStyle = MST(I + 1) .MarkerBackgroundColorIndex = MBC(I + 1) .MarkerForegroundColorIndex = MFC(I + 1) .MarkerSize = MSZ(I + 1) .Shadow = SDW(I + 1) .Smooth = False End With というふうに設定を変数にすると、うまく走りません。 LST()はSTRINGで定義しています。 カラーインデックスはINTEGERで定義していますが、これはいけます。 どうしたらいいのでしょうか?

  • エクセル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 などとしてみましたがダメでした。恥ずかしながら基礎を 理解できていないので詳しく説明していただけると幸いです。 よろしくお願いいたします。

  • グラフの自動描画を行うときに系列名を非表示に

    下記のマクロでグラフを自動描画しています。 この中で、いくつかの点で自分の思うような描画ができていません。今は、描画後に手動にて対応していますが、できることならその手間を省きたく思っています。 ・系列名は不要 ・縦軸、横軸のフォントサイズを指定したい ・データラベルが「0(ゼロ)」の場合は表示しない 何しろマクロ初心者なものです。ご教示をお願いします。 Sub グラフ作成() With ActiveSheet.Shapes.AddChart.Chart .ChartType = xlColumnClustered .SetSourceData Range("V5:W49") End With Dim i As Long With ActiveSheet.ChartObjects(1).Chart For i = 1 To .SeriesCollection.Count .SeriesCollection(i).HasDataLabels = True Next i End With With ActiveSheet.ChartObjects(1).Chart .HasTitle = True .ChartTitle.Characters.Text = Range("W2") & "製造年別グラフ" With .ChartTitle.Format.TextFrame2.TextRange.Font .Size = 6 .Fill.ForeColor.ObjectThemeColor = msoThemeColorAccent2 End With With .Axes(xlCategory, xlPrimary) '---主軸項目軸 .HasTitle = True '---軸ラベル表示 .AxisTitle.Text = "製造年" '---軸ラベル文字列設定 .AxisTitle.Font.Size = 4 End With With .Axes(xlValue, xlPrimary) '---主軸数値軸 .HasTitle = True '---軸ラベル表示 .AxisTitle.Text = "数量" '---軸ラベル文字列設定 .AxisTitle.Font.Size = 4 End With End With End Sub

専門家に質問してみよう