0

こんにちは、私はこのサイトを初めて使用し、私が理解できない単純な解決策であることを願っています。

それぞれに異なるデータを持つ10個の同一のタブを持つワークブックがあります。私が持っているさまざまなデータをグラフ化するために、タブ 1 を参照する新しいタブを作成しました。約 20 個のグラフを見ていますが、残りの 9 個のタブで同じグラフ分析を行い、9 個の新しいタブを作成したいと考えています。

これを実行してグラフをコピーし、各グラフのデータ ソースを変更する唯一の方法は、何時間もかかっています。私が見逃しているものはありますか、それともこれをもっと簡単にするマクロがありますか?

ご回答ありがとうございます。

4

1 に答える 1

0

以前は動的にグラフを追加する必要がありました。これは、いじることができるわずかに変更されたスニペットです。簡単にするために、範囲を現在のシートの A1:B20 としましょう。

Sub AddChart()
Dim ws as worksheet
For each ws in ThisWorkbook.Sheets
        'ADD CHART. . .
        ws.Shapes.AddChart.Select
        ActiveChart.SetSourceData Source:=ws.Range("A1:B20")

        'this makes the chart a certain size, fitted to a cell range.
        Dim RngToCover As Range
        Dim ChtOb As ChartObject
        Set RngToCover = ws.Range("c4:f8") 'chart will be the size of c4:f8
        Set ChtOb = ActiveChart.Parent
        ChtOb.Height = RngToCover.Height ' resize
        ChtOb.Width = RngToCover.Width ' resize
        ChtOb.Top = RngToCover.Top ' reposition
        ChtOb.Left = RngToCover.Left ' reposition


    'random other stuff I did with labels etc.
    ws.Unprotect
        ActiveChart.HasLegend = False
        ActiveChart.ChartTitle.Text = "Age Statistics"
        ActiveChart.SeriesCollection(1).ApplyDataLabels
    ws.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
            False, AllowSorting:=True

  'go to next worksheet
Next ws
于 2013-04-20T05:03:23.060 に答える