プロが教えるわが家の防犯対策術!

VBAで項目軸ラベルの範囲を設定したいのですが分からないので教えてください。データ系列は以下で入れられるのですが・・・

Dim R1 as Range
Dim R2 as Range
Dim n as Integer

Range("a1").Select

n=range("h1").value

Set R1 =Range(Cells(1,1),Cells(n,1))
Set R1 =Range(Cells(1,2),Cells(n,2))

Sheets("グラフ").Select

With ActiveChart
.SetSourceData R1
たぶんここに入れるのでは・・・
End With

Set R1 = Nothing
Set R2 = Nothing

A 回答 (3件)

>グラフを書くときにある値(変数)を参照させて(この場合n)


端にしたいので、この方法ではできないみたいなのです
>端にしたいので、とはどういう意味ですか。
項目軸に表示したいと解して下記。
ーー
自分に余程経験がない場合は、できないと、断定しないこと。色々やってみることが必要。
例データ
A1:B5
a43
s23
d34
f56
g21
h11
まず B1:B5  を範囲指定して、グラフを描く。
X軸(項目軸)は1,2,3、・・になっている。
ーー
下記コードを標準モジュールに入れる。
実行する。
結果は、X軸にa,s,d・・・が現れる。
Sub Macro1()
Worksheets("Sheet1").DrawingObjects(1).Activate
ActiveChart.Axes(xlCategory).Select
ActiveChart.PlotArea.Select
ActiveChart.SeriesCollection(1).XValues = ActiveSheet.Range("A1:A6")
End Sub
私が苦労したのは
Worksheets("Sheet1").DrawingObjects(1).Activate
の1行。
シート上のグラフの、捉え方は別にもあるかもしれないが。
ーー
質問者のコードには、Setが多いが、どこかの実例が、いまも影響しているのだろうが、この課題などでは必要ない。脱却した方が良い
とおもう。
もちろん書きでもできた。
Sub Macro2()
Dim rng As Range
Set rng = ActiveSheet.Range("A1:A6")
Worksheets("Sheet1").DrawingObjects(1).Activate
ActiveChart.Axes(xlCategory).Select
ActiveChart.PlotArea.Select
ActiveChart.SeriesCollection(1).XValues = rng
End Sub
    • good
    • 0

XVvaluesプロパティはシート参照式以外でも使えます


配列定数や配列などを代入してやれば良いですよ

配列なら
Dim ar(1 to 5) as string, n as integer
for n=1 to 5
 ar ( n ) = "s " & n * 10
next
ActiveChart.SeriesCollection(1).XValues = ar

配列定数なら
dim s as String, n as integer
for n=1 to 5
s = s & "S" & n *10 & ","
next
s = left( s, Len(s)-1)
ActiveChart.SeriesCollection(1).XValues = s

といった具合です
# やりたいことを具体的に質問しましょう
    • good
    • 0
この回答へのお礼

皆さんご助言ありがとうございました。
代表でこちらに書かせていただきます。

お礼日時:2007/10/17 23:14

Excelなら『マクロの記録』を活用してみましょう



同じグラフを書かせるマクロを記録して片方では『項目ラベルに使用』を何も登録しないで記録、もう片方では設定して記録
こうして記録されたマクロを見比べればどの命令が希望の動作をするのかが分かります

.SeriesCollection(1).XValues = "=Sheet1!R2C4:R26C4"
系列のXValueプロパティを使うようです

この回答への補足

ありがとうございます。
マクロの記録は知っているのですが、
グラフを書くときにある値(変数)を参照させて(この場合n)
端にしたいので、この方法ではできないみたいなのです。

もしかしたら書き方しだいではできるんですかねぇ?

補足日時:2007/10/16 04:03
    • good
    • 0

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A