1

Excel VBA を使用して、ユーザーフォームに OWC11 を使用してグラフを作成しました。コードを使用して、ワークシートから 2 つの列を OWC チャート スプレッドシートにコピーします。

1 列目は日付 (x 軸)、2 列目は値 (数値) (y 軸) です。

私の問題は、スプレッドシートの最初の列にシリアル日付の形式がある場合、グラフの y 軸に値が正しく表示されることです。ただし、x 軸はシリアル日付を示します。

最初の列の形式を日付、長い、短いなどに設定すると、y 軸のスケールが変更され、グラフのみの値がスプレッドシートやワークシートとはまったく異なりますが、これは問題ありません。これらの値は、ソースよりもはるかに大きいです。

ワークシートからowcスプレッドシートにコピーするさまざまな方法をすでに試しましたが、方法はありません。問題は、スプレッドシートがデータをチャートに送信する方法にあるようです。

この奇妙な動作の原因が何か分かりますか?

私のソフトウェア環境は次のとおりです。

  1. Windows ビスタ
  2. エクセルプロ2010
  3. OWC11 (Ver.12.0.0.4518)

これが私のコードです。

Dim ChtSpc As OWC11.ChartSpace
Dim cht As OWC11.ChChart
Dim Sps As OWC11.Spreadsheet
Dim ws As Worksheet

Set ChtSpc = Me.ChartSpace1
Set Sps = Me.Spreadsheet1
Set ws = ThisWorkbook.Worksheets("foglio3")

Sps.Range("A1:c50") = ws.Range("A1:c50").Value
Set ChtSpc.DataSource = Sps
Set cht = ChtSpc.Charts.Add

With cht
    .SetData chDimCategories, 0, "A1:A50"
    .SeriesCollection(0).SetData chDimValues, 0, "B1:B50"
    .HasLegend = True
    .SeriesCollection.Add
    .SeriesCollection(1).SetData chDimValues, 0, "c1:c50"
    .HasTitle = True
    .Title.Caption = "ANDAMENTO"
    .Title.Interior.Color = 1677215
    .Type = chChartTypeLine
End With
ChtSpc.Interior.SetTwoColorGradient chGradientFromCenter, chGradientVariantEnd, 9125192, 16777215
End Sub
4

0 に答える 0