![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
Charts.Add
ActiveChart.ChartType = xlXYScatterLinesNoMarkers
For i = 1 To 25
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(i).XValues = "=APC!"(3,X)":"Range(lngYCut,X)
ActiveChart.SeriesCollection(i).Values = "=APC!Cells(3,Y):Cells(lngYCut,Y)"
ActiveChart.SeriesCollection(i).Name = "=APC!R1C&X"
X = i * 3 + 1
Y = i * 3 + 2
Next
上記のプログラムでグラフを作成しています。(X,Y,lngYCutは事前に定義しています。)
25個のデータをグラフにする為、For文の中でグラフデータを1つずつ追加していこうと思っています。
データ範囲を変数で指定したいため、=のあとを変えないといけないと思っています。
ただ=のあと""で囲っているため、文字として入力しているんだと思います。
その文字列として入力している場所にどうにかして変数を使いたいです。
どなたか
ActiveChart.SeriesCollection(i).XValues =
のあとに変数を使用できる方法を教えてください
![「マクロでグラフを作成したい」の質問画像](http://oshiete.xgoo.jp/_/bucket/oshietegoo/images/media/a/956505_5497c11c4a3be/M.jpg)
No.1ベストアンサー
- 回答日時:
例として、まず直値で考えてみてください。
..XValues = "=APC!R3C1:R10C1"
..Values = "=APC!R3C2:R10C2"
..Name = "=APC!R1C1"
こんな感じで、『シート名!』とR1C1形式のアドレスをセットすれば良い事がわかります。
XValuesの『C1』の1がXで『R10』の10がlngYCut。
Valuesの『C2』の2がYです。
文字列と変数を組み合わせる時は
"文字列" & 変数 & "文字列" & 変数
..のように文字列をクォートで囲み、変数は囲みません。
以下のようにしてください。
ActiveChart.SeriesCollection(i).XValues = "=APC!R3C" & X & ":R" & lngYCut & "C" & X
ActiveChart.SeriesCollection(i).Values = "=APC!R3C" & Y & ":R" & lngYCut & "C" & Y
ActiveChart.SeriesCollection(i).Name = "=APC!R1C" & X
No.2
- 回答日時:
最近気がついたのですが、文字列でなく、Rangeで与えても動く様です。
Sub test()
Charts.Add
ActiveChart.ChartType = xlXYScatterLinesNoMarkers
ActiveChart.SeriesCollection.NewSeries
With Sheets("Sheet1")
ActiveChart.SeriesCollection(1).XValues = .Range(.Cells(1, 1), .Cells(5, 1))
ActiveChart.SeriesCollection(1).Values = .Range(.Cells(1, 2), .Cells(5, 2))
ActiveChart.SeriesCollection(1).Name = .Cells(1, 3)
End With
End Sub
これなら変数指定も簡単ですね。
但し、グラフシートがアクティブになっているので、データの存在するワークシートをきちんと記述しないと、
'Cellsメソッドは失敗しました:'_Globaオブジェクト'
などという訳の分からないエラーに悩まされます。
ご参考まで。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) vba 等間隔の列に対しての計算 6 2022/05/17 20:15
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Visual Basic(VBA) 列と行の名前(重複あり)が交差するセルに、データを入力したい 2 2022/06/25 22:42
- Visual Basic(VBA) 列と行の名前(重複あり)が交差するセルに、データを入力したい 3 2022/06/12 11:17
- Visual Basic(VBA) VBAで質問ですが、皆さんはどの様に導き出しているのでしょうか? 6 2022/05/03 21:53
- Visual Basic(VBA) VBA横データを縦にしたいです 2 2023/08/08 19:38
- Visual Basic(VBA) Sheet2からオートフィルターで売上日を抽出した件数をカウントし、その件数をSheet1のセルB1 2 2023/01/12 12:24
- その他(プログラミング・Web制作) pythonのグローバル変数 2 2022/11/25 18:02
- Excel(エクセル) VBAで組み合わせ算出やCOUNTIFSの処理を高速化したいです。 4 2022/04/07 02:38
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルでアルファベットか数...
-
VBAでの Replace関数で、ワイル...
-
EXCELで=より左の文字を一括で...
-
Excelで3E8を3.00E+8にしない方...
-
エクセルで文字列をtxtファイル...
-
MS SQLServer のSQLで文字列の...
-
Excelで指数表現しないようにす...
-
文字列からタブコードを取り除...
-
エクセルで文字列の最大値を抽...
-
Left関数とRight関数を合わせた...
-
PDFのファイル名をリネームをし...
-
Msgboxの×が押されたとき
-
OnTime 使用時のプロシージャへ...
-
VBの「As String * 128」とは?
-
変数内に入った文字列の結合 UWSC
-
CStringの文字列検索&抜き出し...
-
ORCLEでの小数の表示方法の変更...
-
16進数を10進数に簡単に変換す...
-
エクセルでセル内の文字列の最...
-
C#で年月を比較する
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルでアルファベットか数...
-
EXCELで=より左の文字を一括で...
-
VBAでの Replace関数で、ワイル...
-
文字列からタブコードを取り除...
-
Excelで指数表現しないようにす...
-
Excelで3E8を3.00E+8にしない方...
-
エクセルで文字列の最大値を抽...
-
MS SQLServer のSQLで文字列の...
-
エクセルで文字列をtxtファイル...
-
Left関数とRight関数を合わせた...
-
【Excel VBA】複数ある特定の文...
-
同一セル内に関数と文字列を同...
-
VBA2005 16進を2桁で表示したい。
-
VBの「As String * 128」とは?
-
エクセル 数値データを桁をそ...
-
Msgboxの×が押されたとき
-
Excelはなんで先頭の0を消すん...
-
16進数を10進数に簡単に変換す...
-
Pro c/c++ でホスト変数の後に....
-
[C言語]fputsとfprintfの違い
おすすめ情報