• ベストアンサー

エクセルのグラフの設定をマクロで変更する方法が分からなくて困っています

エクセルのグラフの設定をマクロで変更する方法が分からなくて困っています。 グラフ上で右クリックをし「元データ」という項目があります。 この中の「データ範囲」の行を計算式で出した値に書き換えたいのですが 命令文がわからない為、困ってます。 例えば《='データ'!$A$1:$C$350》の「350」を「250」に変更したいのですが・・・。 お手数ですが宜しくお願いします

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

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

>回答番号:No.1 この回答へのお礼 失礼しました。 コードの記述で過ちがありました。 Range("A1:C" & G6.Value) は間違いで Range("A1:C" & Range("G6").Value) としてください。 ActivesheetとSheets("PI DATA")は同じですか? 同じなら ActiveSheet.ChartObjects("グラフ 4").Activate 'ActiveChart.ChartArea.Select '★1、この行は不要です ActiveChart.SetSourceData Source:=Range("A1:C" & Range("G6").Value) 同じでない場合 G6がActiveSheetにあるのなら ActiveSheet.ChartObjects("グラフ 4").Activate With Sheets("PI DATA") ActiveChart.SetSourceData Source:=.Range("A1:C" & Range("G6").Value) End With G6がSheets("PI DATA")にあるのなら Range("G6")をSheets("PI DATA")で修飾しなければなりません。 ActiveSheet.ChartObjects("グラフ 4").Activate With Sheets("PI DATA") ActiveChart.SetSourceData Source:=.Range("A1:C" & .Range("G6").Value) End With あとグラフはActivateしなくても処理ができます。 試してみてください。 With ActiveSheet.ChartObjects("グラフ 4") .SetSourceData Source:=Range("A1:C" & Range("G6").Value) End With

bibloda
質問者

お礼

遅れましたが回答有難うございました。

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.2

基本的に方法論として、マクロの記録を取り直してみて、どう変わるか見れば、判るのでは。 ーー その前後の結果(データ範囲の部分に)について、どういう風に変えたのか質問に書かないで、(当然変更してみた結果どうなったか、についても)質問しているのはおかしいと思う。 変更後、(再)実行はしたでしょうね。 ーー 対象は 1例で Charts.Addを実行して後 ActiveChart.SetSourceData Source:=Sheets("Sheet1").Range("A2:B4")の1行でしょう ーー 添付画像は何が書いてあるか、までは判らない(読めない)場合が多く読者には役立たない。これはOKWAVEのせいだが。 ーー グラフのVBAの基本は グラフを描く、グラフの種類、データは何処、描く場所(埋め込む)は何処 Sub test01() Set g = Charts.Add With g .ChartType = xlLineMarkers .SetSourceData Source:=Sheets("Sheet2").Range("A2:B4") .Location Where:=xlLocationAsObject, Name:="Sheet3" End With End Sub

bibloda
質問者

お礼

詳しい説明ありがとうございました。問題が解決し無事マクロも完成いたしました。

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

下記で試してみてください。 (グラフを選択して置いて実行してください。) Activechart.SetSourceData Source:=Sheets("データ").Range("A1:C250") セル(例えばD1)の計算値を反映するなら Activechart.SetSourceData Source:=Sheets("データ").Range("A1:C" & D1.Value)

bibloda
質問者

お礼

早速の回答ありがとうございます。 下記のようなマクロを組んでみましたが3行目でデバッグが出てしまいまいます。 グラフ4をセレクトしてシート「PI DATA」のG6の計算結果の範囲を行に指定するように しました。   ActiveSheet.ChartObjects("グラフ 4").Activate ActiveChart.ChartArea.Select ActiveChart.SetSourceData Source:=Sheets("PI DATA").Range("A1:C" & G6.Value) お手数ですがご教授願います。

関連するQ&A