1

HI12981001.asvp、HI19281002.asvp、HI19281003.asvpなどのラベルが付いた複数のシートを含むExcelファイルがあります。

各シートには、ヘッダーのない2つの列があります。以下のマクロを使用して、各シートのこれら2つの列のデータの散布図を作成しています。問題は、各シートのシリーズ名を手動で変更する必要があることです。

このマクロを基に、リスト(HI12981001.asvp、HI19281002.asvp、HI19281003.asvp ..など)を確認し、各シートまたは単純なメインチャートにデータ系列を作成できるようにするためのヘルプを探しています。本全体に目を通し、シート名と同じシリーズ名でグラフを作成します。

これが最初の3枚のマクロです

Sub zx()
Dim wb As Workbook
Dim sh As Worksheet
Dim Chrt As Chart
Dim Srs As Series

Set wb = ActiveWorkbook
Set Chrt = wb.Charts.Add(After:=wb.Worksheets(wb.Worksheets.Count))
Chrt.ChartType = xlXYScatterSmoothNoMarkers
Chrt.Name = "SVP Profiles"

Set Srs = Chrt.SeriesCollection.NewSeries
Srs.Name = "HI12981001.asvp"
Set sh = wb.Sheets("HI12981001.asvp")
Srs.XValues = "=" & sh.Name & "!" & sh.UsedRange.Columns(2).Address
Srs.Values = "=" & sh.Name & "!" & sh.UsedRange.Columns(1).Address

Set Srs = Chrt.SeriesCollection.NewSeries
Srs.Name = "HI12981002.asvp"
Set sh = wb.Sheets("HI12981002.asvp")
Srs.XValues = "=" & sh.Name & "!" & sh.UsedRange.Columns(2).Address
Srs.Values = "=" & sh.Name & "!" & sh.UsedRange.Columns(1).Address



 Set Srs = Chrt.SeriesCollection.NewSeries
    Srs.Name = "HI12981003.asvp"
    Set sh = wb.Sheets("HI12981003.asvp")
    Srs.XValues = "=" & sh.Name & "!" & sh.UsedRange.Columns(2).Address
 Srs.Values = "=" & sh.Name & "!" & sh.UsedRange.Columns(1).Address


 End Sub

ありがとうございました

4

1 に答える 1

1
Option Explicit

Sub zx()

Dim wb As Workbook
Dim Chrt As Chart


   Set wb = ActiveWorkbook
   Set Chrt = wb.Charts.Add(After:=wb.Worksheets(wb.Worksheets.Count))
   Chrt.ChartType = xlXYScatterSmoothNoMarkers
   Chrt.Name = "SVP Profiles"


   'add the series
   AddNewSeries "HI12981001.asvp", wb, Chrt
   AddNewSeries "HI12981002.asvp", wb, Chrt
   AddNewSeries "HI12981003.asvp", wb, Chrt

End Sub

'Add new series to chart 'cht', using sheet 'sheetName'
'    in Workbook 'wb'
Sub AddNewSeries(sheetName As String, wb As Workbook, cht As Chart)

    Dim sh As Worksheet
    Dim Srs As Series

    Set Srs = cht.SeriesCollection.NewSeries
    Srs.Name = sheetName
    Set sh = wb.Sheets(sheetName)
    Srs.XValues = "=" & sh.Name & "!" & sh.UsedRange.Columns(2).Address
    Srs.Values = "=" & sh.Name & "!" & sh.UsedRange.Columns(1).Address

End Sub
于 2012-11-20T17:30:42.083 に答える