3

仕事に問題があります。大量の情報を含むデータ レポートがあり、経時的に 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、あなたのコードが私のワークシートでどのように機能するか知りたいのですが、構文エラーを修正する方法がわかりません.

4

1 に答える 1