![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
可変の範囲を持つ折れ線グラフを作成したいのです。
グラフウィザードでデータ範囲を
=エクセルファイル1.xls!valueとして(範囲をvalueとして名前定義しています。データがある行までを範囲指定するものです)
実行すると、一見正しく表示されているのですが
表のデータが増えたりしても範囲を変更してくれません。
グラフを右クリックして元のデータを見てみると、先程
=エクセルファイル1.xls!valueと指定したところが具体的な範囲(A10:G20)等に変わってしまっていました。
最初にグラフを作成したときの範囲がずっと反映されるようなのです。
私は常に=エクセルファイル1.xls!valueの範囲を反映させてほしいのですが……
具体的にどういう方法があるのでしょうか……
No.1ベストアンサー
- 回答日時:
qa4939552.htmlではうまく伝わらなかったようですね。
[名前定義]を使う可変範囲グラフは、『系列ごとに』名前を定義する必要があります。
それにSetSourceDataでセットするのではありません。
http://office.microsoft.com/ja-jp/excel/HA011098 …
のようにSERIES関数を使います。
系列データだけの簡易なサンプル。
Sub try_1() 'サンプルシート作成
Const y As Long = 10 'サンプルデータ初期行数
Const x As Long = 5 'サンプル系列数
Dim cht As Chart
Dim i As Long
Dim s As String
With Sheets.Add
'サンプルデータ作成
With .Range("A1").Resize(y, x)
.Formula = "=INT(RAND()*100)"
.Value = .Value
End With
'グラフ作成
s = .Name & "!"
Set cht = .ChartObjects.Add(.Cells(1, x + 1).Left, 0, 500, 300).Chart
cht.ChartType = xlLine
For i = 1 To x
'[名前定義]
.Names.Add "系" & i, "=OFFSET($A$1,0," & i - 1 & ",COUNTA($A:$A))"
cht.SeriesCollection.NewSeries.FormulaR1C1 = "=SERIES(,," & s & "系" & i & ",)"
Next
End With
Set cht = Nothing
End Sub
系列の名前やx軸も設定するサンプル。
Sub try_2() 'サンプルシート作成
Const y As Long = 10 'サンプルデータ初期行数
Const x As Long = 5 'サンプル系列数
Dim cht As Chart
Dim i As Long
Dim s As String
Dim v
With Sheets.Add
'サンプルデータ作成
.Range("A1").Value = "回"
.Range("B1").Resize(, x).Formula = "=ADDRESS(ROW(),COLUMN(),4)"
.Range("A2").Resize(y).Formula = "=ROW(A1)"
.Range("B2").Resize(y, x).Formula = "=INT(RAND()*100)"
With .Range("A1").CurrentRegion
.Value = .Value
End With
'グラフ作成
s = .Name & "!"
Set cht = .ChartObjects.Add(.Cells(1, x + 2).Left, 0, 500, 300).Chart
cht.ChartType = xlLine
.Names.Add "回", "=OFFSET($A$1,1,0,COUNTA($A:$A))"
For i = 1 To x
'[名前定義]
.Names.Add "ラベル" & i, "=OFFSET($A$1,0," & i & ")"
.Names.Add "系" & i, "=OFFSET($A$1,1," & i & ",COUNTA($A:$A))"
v = Array(s & "ラベル" & i, s & "回", s & "系" & i, i)
cht.SeriesCollection.NewSeries.FormulaR1C1 = "=SERIES(" & Join(v, ",") & ")"
Next
End With
Set cht = Nothing
End Sub
#VBAコードのサンプルではありません。
#[名前定義]を使った可変範囲グラフのサンプルです。
#できあがったグラフの[元のデータ]-[系列]タブ内容と、
#系列を選択して数式バーに表示されるSERIES関数と、
#[名前定義]を参照して理解してください。
ありがとうございます!!
VBAを実行して正しく動くことを確認しましたが
自分の知識ではプログラムの内容を理解するのにまだ
時間がかかりそうです
しかし時間がかかっても少しずつ読み取っていこうと思います!
長文本当に感謝しています、ありがとうございました^^
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excel ドロップダウンリスト(入力規則)に関してです データの入力規則で元データ79000行のド 3 2023/07/17 10:06
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/03/27 13:25
- Excel(エクセル) エクセルの散布図で新たに入力した値のデータラベルが空欄になる現象 1 2022/04/26 09:31
- Excel(エクセル) 【マクロ】同じフォルダ内にある複数ブックから1つのブック内の1シートにデータを集めたい 6 2022/09/28 18:16
- Excel(エクセル) Excelグラフについて 1 2022/06/16 16:06
- Visual Basic(VBA) vba 等間隔の列に対しての計算 6 2022/05/17 20:15
- Excel(エクセル) EXCELのグラフを画像(JPG形式)で保存、通常実行がうまく行かない。ステップインはうまく行く 3 2022/08/30 12:06
- Visual Basic(VBA) Excelのマクロ ブック間である範囲をコピー Workbooks(“a.xlsx“).Sheets 3 2022/05/12 17:02
- Excel(エクセル) エクセルVBAで複数のシート印刷設定 1 2022/09/07 12:03
- Visual Basic(VBA) 【VBA】Excelの特定範囲のセルを画像で保存したい 2 2023/01/25 13:06
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
中華ゲーム機のGame Console R3...
-
パソコンがフリーズする
-
プレミアでコマンド+Zを、押し...
-
脳の報酬系について。 次の生物...
-
Win11で画像ファイルが突然開け...
-
ChatGPT
-
CrystalDiskInfoは大企業で使わ...
-
HandBrakeのエンコーダ設定
-
ファイルシステムが破損してい...
-
光回線とモバイルルーターとSIM...
-
PowerShellに将来性はあるので...
-
Crystal DiskInfoの生の値は既...
-
win11エクセルで作った表を、他...
-
Windowsのパソコンに沢山のソフ...
-
ノートパソコンを充電している...
-
ファイルシステムはノートパソ...
-
延長コードの合計1500ワットを...
-
キーボードのESCキーを押した事...
-
キーボードのキーにある時に押...
-
ノートパソコンを充電している...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
中華ゲーム機のGame Console R3...
-
キーボードのキーにある時に押...
-
遠隔地のPCを操作したい
-
パソコンがフリーズする
-
BIOSが破損しているかどうかを...
-
ノートパソコンに付属している...
-
インストーラってインストール...
-
ファイルシステムはノートパソ...
-
BIOSはノートパソコンのバッテ...
-
HandBrakeのエンコーダ設定
-
外付けSSDを直撃雷から守る方法...
-
win11エクセルで作った表を、他...
-
インストールできない
-
延長コードの合計1500ワットを...
-
setup.exeのファイルはインスト...
-
FMV-E8240というパソコンを持っ...
-
nvidia 他に、日本の、これから...
-
光回線とモバイルルーターとSIM...
-
TRIMを外付けSSDに手動でする必...
-
外付けSSDのデータを改ざんされ...
おすすめ情報