【初月無料キャンペーン中】gooドクター

 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

gooドクター

A 回答 (1件)

こんにちは。

maruru01です。

エラーの内容がよく分からないのですが、おそらくCellsプロパティにはシート名を付けないといけないのではないかと思います。
よって

With Sheets("データ")
  Grp1.Chart.SetSourceData _
  Source:=.Range(.Cells(3, 1), Cells(10, 2)), _
  PlotBy:=xlColumns
End With

になると思います。
では。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。早速試してみました。
そのまま置き換えてみたら、うまく元データを取得できなかったようですが、
「With Sheets("データ")」の前に「Sheets("データ").Select」という一文を入れてみたらうまくいきました。
ただ、ひとつ疑問があるのですが、With~というのは、Withの後のオブジェクトを操作するときに使うという認識だったのですが、今回ご回答頂いた使い方はそのような使い方ではないように思えます。With~というのはどのように理解すれば良いのでしょうか。
ちなみに、私が今まで思っていた使い方は・・・
With Worksheets("Sheet1").Range("A1")
.Font.ColorIndex=3
End With
などです。

お礼日時:2002/06/14 15:56

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

gooドクター

人気Q&Aランキング