VBAでシートから値を読み取り、読み取ったデータを別のシートでグラフとして表示したいのですが、グラフは作成できたのですが、値が入っていないグラフが作成されてしまいました。
不勉強で申し訳ないのですが、コードの修正をお願いできますでしょうか。
申し訳ございませんが宜しくお願い致します。
Sub
1 2'ループカウンター用 3 Dim i As Long 4 'グラフ作成用 5 Dim r1 As Range 6 'グラフ作成用 7 Dim r As Range 8 9 'ワークシート用変数 10 Dim ws As Worksheet 11 12 13'最終行 14Dim EndRow As Long 15'最終列 16 Dim EndCol As Long 17 18'グラフシートが既にあれば、削除する 19For Each ws In Worksheets 20 If ws.Name = "graph" Then 21 Application.DisplayAlerts = False 22 ws.Delete 23 Application.DisplayAlerts = True 24 Exit For 25 End If 26Next ws 27 28 29'グラフシート作成 30Worksheets.Add 31ActiveSheet.Name = "graph" 32 33Sheets("data").Activate 34 35'最終列取得 36EndCol = Cells(2, Columns.Count).End(xlToLeft).Column 37 38'グフラ作成 39For i = 2 To EndCol 40 Sheets("graph").Activate 41 With ActiveSheet.Shapes.AddChart.Chart 42 .ChartType = xlLine 43 .SetSourceData Source:=Union(Range(Range("A2"), Cells(Rows.Count, 1).End(xlUp)), _ 44 Range((Cells(2, i)), Cells(Rows.Count, i).End(xlUp))) 45 46 'グラフ位置 47 .Parent.Top = Range("B" & ((i - 2) * 15 + 1)).Top 48 .Parent.Left = Range("B" & ((i - 2) * 100 + 1)).Lef 49 50 'データラベル追加 51 If Sheets("linegraph_create").CheckBox1.Value = True Then 52 .SetElement (msoElementDataLabelTop) 53 End If 54 '凡例追加 55 If Sheets("linegraph_create").CheckBox2.Value = True Then 56 .HasLegend = True 57 End If 58 End With 59Next i 60 61 62 63MsgBox "完了しました" 64 65End Sub 66 67 68 69 70 71コード
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/06/20 06:21
2021/06/20 14:09