
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
No.2ベストアンサー
- 回答日時:
>グラフを書くときにある値(変数)を参照させて(この場合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
No.3
- 回答日時:
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
といった具合です
# やりたいことを具体的に質問しましょう
No.1
- 回答日時:
Excelなら『マクロの記録』を活用してみましょう
同じグラフを書かせるマクロを記録して片方では『項目ラベルに使用』を何も登録しないで記録、もう片方では設定して記録
こうして記録されたマクロを見比べればどの命令が希望の動作をするのかが分かります
.SeriesCollection(1).XValues = "=Sheet1!R2C4:R26C4"
系列のXValueプロパティを使うようです
この回答への補足
ありがとうございます。
マクロの記録は知っているのですが、
グラフを書くときにある値(変数)を参照させて(この場合n)
端にしたいので、この方法ではできないみたいなのです。
もしかしたら書き方しだいではできるんですかねぇ?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
-
ExcelVBA:複数の特定のグラフを選択する方法
Visual Basic(VBA)
-
VBAで○○:○○と表示させたいのに小数で0.53125のように表示さ
Access(アクセス)
-
-
4
VBAでの、Excelグラフの項目軸の指定方法
その他(Microsoft Office)
-
5
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
6
Excelマクロでグラフの縦軸目盛りを変更する方法について
Visual Basic(VBA)
-
7
【マクロ】PasteSpecialメソッドにて、コードが動かない理由が分かりません
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA 変数名に変数を使用したい。
-
VB6のメモリ解放に関して
-
VB.NETの配列の限界を教えてく...
-
エクセルでXY座標に並べられた...
-
Excel2010のinputboxで複数デー...
-
配列の中の最大値とそのインデ...
-
Variant型配列の文字コード変換
-
C#でbyte配列から画像を表示さ...
-
配列のペースト出力結果の書式...
-
VBA: Select Caseを短くしたい
-
配列の要素がすべてカラかどう...
-
大量の変数を定義するにはどう...
-
.NET 文字コードの変換
-
OutOfMemoryExceptionの回避策...
-
RPG 配列宣言について
-
Excelマクロ:配列データからグ...
-
Imagelist の使い回しについて
-
VBAでMODE関数をつくる
-
クリスタルレポートで文字列の...
-
2つ目のレコードの値を取得す...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA 変数名に変数を使用したい。
-
C#でbyte配列から画像を表示さ...
-
エクセルでXY座標に並べられた...
-
vba フィルター 複数条件 3つ以...
-
配列のペースト出力結果の書式...
-
OutOfMemoryExceptionの回避策...
-
配列の中の最大値とそのインデ...
-
複数のtextboxの処理を一括で行...
-
Dir関数で読み取り順を操作でき...
-
VB6からの移行したいけど、VB.N...
-
COBOLの基本的な事なので...
-
構造体配列の特定のメンバーをF...
-
大量の変数を定義するにはどう...
-
EXCEL VBAの課題です
-
Redim とEraseの違いは?
-
VB.NETの配列にExcelから読み込...
-
VBAでMODE関数をつくる
-
VB.NETにて、構造体へデータを...
-
1ビットごとの配列を作りたい
-
VBAで配列引数を値渡しできない...
おすすめ情報