仕事に問題があります。大量の情報を含むデータ レポートがあり、経時的に 3 つの異なる値を表す 3 つの折れ線グラフを作成する必要があります。時間はレポートにもあり、すべての値で同じ時間です。他のフォーラムで自分に固有の解決策を見つけるのに苦労しています。
データ レポートの長さ、行はさまざまです。私がする必要があるのは、3 つの折れ線グラフを作成し、それらをレポートの末尾の数行下に水平に配置することです。2 つのグラフにはそれぞれ 1 つのシリーズがあり、3 つ目のグラフには 2 つのシリーズがあります。
これは、グラフに含める必要があるものです。
グラフ 1: RPM の推移
グラフ 2: 圧力の推移
グラフ 3: ステップ バーンオフとデマンド バーンオフの推移
仕事での最近のポジションの変更により、VBA を始めたばかりで、VBA についてはほとんど知りませんが、同じレポート用の他のマクロを記述する方法を見つけるのに多くの時間を費やしました。ワークブックの口頭での表現が不明確であるため、表示用にデータ レポートのサンプルへのリンクを添付しました。
これが私がこれまでに持っているものです。最初のチャートで機能します。チャートに「RPM」という名前を付け、シリーズに「RPM」という名前を付けるには、コードに何を入力すればよいでしょうか?
Sub Test()
Dim LastRow As Long
Dim Rng1 As Range
Dim ShName As String
With ActiveSheet
LastRow = .Range("B" & .Rows.Count).End(xlUp).Row
Set Rng1 = .Range("B2:B" & LastRow & ", E2:E" & LastRow)
ShName = .Name
End With
Charts.Add
With ActiveChart
.ChartType = xlLine
.SetSourceData Source:=Rng1
.Location Where:=xlLocationAsObject, Name:=ShName
End With
End Sub
VBA経由でチャート名を入れる方法を見つけました。コードは次のようになります。
Sub Test()
Dim LastRow As Long
Dim Rng1 As Range
Dim ShName As String
With ActiveSheet
LastRow = .Range("B" & .Rows.Count).End(xlUp).Row
Set Rng1 = .Range("B2:B" & LastRow & ", E2:E" & LastRow)
ShName = .Name
End With
Charts.Add
With ActiveChart
.ChartType = xlLine
.HasTitle = True
.ChartTitle.Text = "RPM"
.SetSourceData Source:=Rng1
.Location Where:=xlLocationAsObject, Name:=ShName
End With
End Sub
次に、シリーズのタイトルに取り組み、次にレポート データの下にグラフ自体を配置します。提案やコメントを歓迎します。
以下の更新されたコードは、rpm チャートと圧力チャートを別々に作成します。最後のチャートには 2 つの系列が必要で、現在それに取り組んでいます。
Sub chts()
'RPM chart-------------------------------------
Dim LastRow As Long
Dim Rng1 As Range
Dim ShName As String
With ActiveSheet
LastRow = .Range("B" & .Rows.Count).End(xlUp).Row
Set Rng1 = .Range("B2:B" & LastRow & ", E2:E" & LastRow)
ShName = .Name
End With
Charts.Add
With ActiveChart
.ChartType = xlLine
.HasTitle = True
.ChartTitle.Text = "RPM"
.SetSourceData Source:=Rng1
.Location Where:=xlLocationAsObject, Name:=ShName
End With
With ActiveChart.SeriesCollection(1)
.Name = "RPM"
End With
' Pressure chart --------------------------------
Dim LastRow2 As Long
Dim Rng2 As Range
Dim ShName2 As String
With ActiveSheet
LastRow2 = .Range("B" & .Rows.Count).End(xlUp).Row
Set Rng2 = .Range("B2:B" & LastRow2 & ", G2:G" & LastRow2)
ShName2 = .Name
End With
Charts.Add
With ActiveChart
.ChartType = xlLine
.HasTitle = True
.ChartTitle.Text = "Pressure/psi"
.SetSourceData Source:=Rng2
.Location Where:=xlLocationAsObject, Name:=ShName2
End With
With ActiveChart.SeriesCollection(1)
.Name = "Pressure"
End With
End Sub
David、あなたのコードが私のワークシートでどのように機能するか知りたいのですが、構文エラーを修正する方法がわかりません.