100個ぐらい作成しなければならないのです。
データは一枚のシートに、並んでおり、それぞれ手でグラフを作っております。
マクロを使ってグラフを作ろうとしたのですが、
ActiveChart.SetSourceData Source:=Sheets(”全体まとめ”).Range(”W31:AB34”), PlotBy _
Range(”W31:AB34”
とエリアを絶対値で決められてしまい、複数のグラフを作成できません。
相対的に範囲を選択する方法が、あればできると思うのですが、調べてもよくわかりません。
はじめにグラフにしたいエリアをアクティブにしておいて、マクロを実行するだけで、グラフを作成できるようにするには、どうしたらよいのでしょうか?
ステップとしては、
1、グラフにしたいエリアの数字をアクティブにする
2、マクロを実行
3、選択したエリアの数字でグラフ作成。
という流れで作れればよいと考えております。
よろしくお願いします。
http://support.microsoft.com/default.aspx?scid=kb;ja;408046
[XL97]コメントが挿入されているセルの数を取得する方法
以下のマクロを試してみてください。
要はSelection.Addressでrange()の括弧の中身に使える範囲が取得できますということです
Sub グラフを作る()
選択範囲 = Selection.Address ’ここで選択したセルを選択範囲変数に入れている
Charts.Add
ActiveChart.ChartType = xlLineMarkers
ActiveChart.SetSourceData Source:=Sheets(”Sheet1”).Range(選択範囲), PlotBy:= _
xlRows
ActiveChart.Location Where:=xlLocationAsObject, Name:=”Sheet1”
With ActiveChart
.HasTitle = False
.Axes(xlCategory, xlPrimary).HasTitle = False
.Axes(xlValue, xlPrimary).HasTitle = False
End With
End Sub
その目的ならマクロ使う必要はないですよ。作りたいグラフを標準にしてしまいましょう。urlにやり方が書いてあります。
http://arena.nikkeibp.co.jp/lecture/20030507/104568/
グラフを作成した後で、参照するデータ範囲を変更する / デジタルARENA
もう一つ別のやり方。
一度つくったグラフをctrlキーを押しながら適当にドラッグアンドドロップしてみてください。
コピーできます。
で、コピーしたグラフの領域をマウスで変えます。
このurlの図5 参照してください。
なるほど、無理にマクロ使う必要ないんですね。
これは参考にしたサイトです
Dim Vals As Range
Set Vals = Range(Selection, Selection.End(xlDown))
Charts.Add
ActiveChart.ChartType = xlColumnClustered
ActiveChart.SetSourceData Source:=Vals, PlotBy:= _
xlColumns
ActiveChart.Location Where:=xlLocationAsObject, Name:="Sheet1"
このように強制的に選択範囲をグラフにすることも出来ますが無理に ActiveChart.SetSourceData Source を指定しなくても
Charts.Add
ActiveChart.ChartType = xlColumnClustered
ActiveChart.Location Where:=xlLocationAsObject, Name:="Sheet1"
まででグラフを選択した範囲で作成できますよ
ありがとうございます。
試して見ます。