Excel VBA を使用して、ユーザーフォームに OWC11 を使用してグラフを作成しました。コードを使用して、ワークシートから 2 つの列を OWC チャート スプレッドシートにコピーします。
1 列目は日付 (x 軸)、2 列目は値 (数値) (y 軸) です。
私の問題は、スプレッドシートの最初の列にシリアル日付の形式がある場合、グラフの y 軸に値が正しく表示されることです。ただし、x 軸はシリアル日付を示します。
最初の列の形式を日付、長い、短いなどに設定すると、y 軸のスケールが変更され、グラフのみの値がスプレッドシートやワークシートとはまったく異なりますが、これは問題ありません。これらの値は、ソースよりもはるかに大きいです。
ワークシートからowcスプレッドシートにコピーするさまざまな方法をすでに試しましたが、方法はありません。問題は、スプレッドシートがデータをチャートに送信する方法にあるようです。
この奇妙な動作の原因が何か分かりますか?
私のソフトウェア環境は次のとおりです。
- Windows ビスタ
- エクセルプロ2010
- 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