1

Excel で VBA を使用するために同様の質問が寄せられているのを見たことがありますが、私は VBScript を使用しているため、少し異なります。他の質問への回答からいくつかの手がかりが得られましたが、これを修正する方法がわかりません。

.SetSourceData を使用して、グラフで使用する範囲を定義しています。最初の行から最後の行 (シート全体) までの範囲を定義することは問題なく機能しますが、以前に定義した変数を使用してダイナミック レンジを定義したいと考えています。したがって、これは機能します:

.SetSourceData objWorksheet.Range("E1","F" & LastRow), xlColumns

ここで、LastRow は として定義されLastRow=objWorksheet.UsedRange.Rows.Countます。今私がやりたいことは、最後の行から数行戻って範囲を使用することです。だから私の考えはこれを行うことでした:

.SetSourceData objWorksheet.Range(Rowstring,"F" & LastRow), xlColumns

ここで、RowString は次のように定義されます。

WeekNumber = LastRow - 1000
RowString = "E" & WeekNumber

しかし、それは私にエラーを与えます。範囲内で文字列変数を使用し、それをチャート生成のソース データとして設定するにはどうすればよいですか? これが私が使用しているコードです

    WeekNumber = LastRow - 1000
    RowString = "E" & WeekNumber
    WScript.echo(RowString)


' Data for last week

Sub LastWeek()
    WeekNumber = LastRow - 1000
    RowNumber = LastRow - WeekNumber
    RowString = "E" & RowNumber
End Sub

myrange = "E1:E52"

Set Range1 = objWorksheet.Range(myrange)

' Define chart properties 

Set objChart = objExcel.Charts.Add()
    With objChart
        'define chart type
        .ChartType = xlXYScatterLinesNoMarkers
        'format chart
        .SeriesCollection(1).Border.Color = RGB(255, 0, 0)
        REM .ChartArea.Color = RGB(255, 255, 255)
        .PlotArea.Interior.Color = RGB(255, 255, 255)
        .HasTitle = True 
        .ChartTitle.Text = "usage"
        .Axes(xlCategory, xlPrimary).HasTitle = True
        .Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Time"
        .Axes(xlValue, xlPrimary).HasTitle = True
        .Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "test"
        .HasLegend = False
        'define data
        .SetSourceData objWorksheet.Range(RowString,"F" & LastRow), xlColumns
        .Export "Test.png", "PNG"
    End With

前もって感謝します

4

1 に答える 1