0

EXCEL VBA を使用して、2 行のデータから新しいグラフを作成しています。エクセルのバージョンは2013です。

X 軸には年があり、Y 軸には各年の特定の値があります。

私が直面している問題は、実際のチャートを作成しているときに、以下のスクリーン キャプチャに示すように、使用可能な 3 つのスタイルのいずれかがランダムに選択されることです。

私は以下を使用してチャートを作成しています:

ActiveSheet.Shapes.AddChart2(201, xlColumnClustered).Select
ActiveChart.SetSourceData Source:=Union(Sheets(SheetName).Range(Cells(1, 11), Cells(1, LastColumnNumber)), Sheets(SheetName).Range(Cells(4, 11), Cells(4, LastColumnNumber)))

追加する理由Sheets(SheetsName)は、チャートを作成した後にチャートを新しいシートに移動しているためです。参照を維持するために必要です。

LastColumnNumber昨年の列をカウントするために使用され、それに対応する値です。

私が試してみました:

ActiveChart.ChartType = xlColumnClustered

また、スタイルを変更するときに新しいマクロを記録しようとしましたが、これら 3 つのいずれかを選択するパラメーターはありません。

Excel 2013 グラフの種類の選択

回避策として (ただし、VBA では機能しません)、チャート スタイルをClustered Columnスタイル以外のものに変更し、必要なものを選択し直しています。

PS実際には、印刷画面で選択したものが添付されている必要があります。

そのスタイルを強制的に適用するにはどうすればよいですか?

4

1 に答える 1

1

私が理解しているように、これが必要です:

Chart.PlotBy = xlColumns

またはこれ:

Chart.PlotBy = xlRows

コンテキストについては、以下を参照してください。

Sub InsertBar(myRange As Range)

    Dim rngChart As Range
    Dim myChart As Chart

    Sheets(Operator.Value).Range("$A$10:$C$10").Select
    Set myChart = ActiveSheet.Shapes.AddChart(xlColumnClustered, 500, 10, , 175).Chart

    With myChart
        .PlotBy = xlColumns
        .ChartArea.Format.TextFrame2.TextRange.Font.Size = 8
        .HasTitle = True
        .ChartTitle.Text = "Title"
        .SeriesCollection(1).Name = Range("B" & StartRow - 1).Value
        .SeriesCollection(2).Name = Range("C" & StartRow - 1).Value
    End With
End Sub
于 2017-01-31T15:26:07.130 に答える