Sub sort(x(), y(), n)
For i = 0 To n - 1
For j = 1 To n - i
If x(j - 1) > x(j) Then
t = x(j - 1)
x(j - 1) = x(j)
x(j) = t
t = y(j - 1)
y(j - 1) = y(j)
y(j) = t
End If
Next j
Next i
End Sub
Sub test_plot()
'適当なデータを用意
Dim x1(5), y1(5)
Dim x2(14), y2(14)
For i = 0 To 5
x1(i) = Rnd
y1(i) = x1(i) * x1(i)
Next i
Call sort(x1, y1, 5)
For i = 0 To 14
x2(i) = Rnd
y2(i) = x2(i) + x2(i)
Next i
Call sort(x2, y2, 14)
'確認のためにセルに書き込み
[A1] = "x1"
[B1] = "y1"
For i = 0 To 5
Cells(2 + i, 1) = x1(i)
Cells(2 + i, 2) = y1(i)
Next i
[C1] = "x2"
[D1] = "y2"
For i = 0 To 14
Cells(2 + i, 3) = x2(i)
Cells(2 + i, 4) = y2(i)
Next i
'グラフ描画
Dim ch As ChartObject
Set ch = ActiveSheet.ChartObjects.Add(300, 10, 300, 200)
With ch.chart
'With .Axes(xlCategory, xlPrimary)
' .MinimumScale = 0
' .MaximumScale = 1
'End With
With .SeriesCollection.NewSeries
.ChartType = xlLine
.AxisGroup = 1
.XValues = x1
.Values = y1
End With
With .SeriesCollection.NewSeries
.ChartType = xlLine
.AxisGroup = 2
.XValues = x2
.Values = y2
End With
End With
End Sub
U3ViIHNvcnQoeCgpLCB5KCksIG4pCiAgICBGb3IgaSA9IDAgVG8gbiAtIDEKICAgICAgICBGb3IgaiA9IDEgVG8gbiAtIGkKICAgICAgICAgICAgSWYgeChqIC0gMSkgPiB4KGopIFRoZW4KICAgICAgICAgICAgICAgIHQgPSB4KGogLSAxKQogICAgICAgICAgICAgICAgeChqIC0gMSkgPSB4KGopCiAgICAgICAgICAgICAgICB4KGopID0gdAogICAgICAgICAgICAgICAgdCA9IHkoaiAtIDEpCiAgICAgICAgICAgICAgICB5KGogLSAxKSA9IHkoaikKICAgICAgICAgICAgICAgIHkoaikgPSB0CiAgICAgICAgICAgIEVuZCBJZgogICAgICAgIE5leHQgagogICAgTmV4dCBpCkVuZCBTdWIKClN1YiB0ZXN0X3Bsb3QoKQoKJ+mBqeW9k+OBquODh+ODvOOCv+OCkueUqOaEjwpEaW0geDEoNSksIHkxKDUpCkRpbSB4MigxNCksIHkyKDE0KQoKRm9yIGkgPSAwIFRvIDUKICAgIHgxKGkpID0gUm5kCiAgICB5MShpKSA9IHgxKGkpICogeDEoaSkKTmV4dCBpCkNhbGwgc29ydCh4MSwgeTEsIDUpCgpGb3IgaSA9IDAgVG8gMTQKICAgIHgyKGkpID0gUm5kCiAgICB5MihpKSA9IHgyKGkpICsgeDIoaSkKTmV4dCBpCkNhbGwgc29ydCh4MiwgeTIsIDE0KQoKJ+eiuuiqjeOBruOBn+OCgeOBq+OCu+ODq+OBq+abuOOBjei+vOOBvwpbQTFdID0gIngxIgpbQjFdID0gInkxIgpGb3IgaSA9IDAgVG8gNQogICAgQ2VsbHMoMiArIGksIDEpID0geDEoaSkKICAgIENlbGxzKDIgKyBpLCAyKSA9IHkxKGkpCk5leHQgaQoKW0MxXSA9ICJ4MiIKW0QxXSA9ICJ5MiIKRm9yIGkgPSAwIFRvIDE0CiAgICBDZWxscygyICsgaSwgMykgPSB4MihpKQogICAgQ2VsbHMoMiArIGksIDQpID0geTIoaSkKTmV4dCBpCgon44Kw44Op44OV5o+P55S7CkRpbSBjaCBBcyBDaGFydE9iamVjdApTZXQgY2ggPSBBY3RpdmVTaGVldC5DaGFydE9iamVjdHMuQWRkKDMwMCwgMTAsIDMwMCwgMjAwKQoKV2l0aCBjaC5jaGFydAogICAgJ1dpdGggLkF4ZXMoeGxDYXRlZ29yeSwgeGxQcmltYXJ5KQogICAgJyAgICAuTWluaW11bVNjYWxlID0gMAogICAgJyAgICAuTWF4aW11bVNjYWxlID0gMQogICAgJ0VuZCBXaXRoCiAgICAKICAgIFdpdGggLlNlcmllc0NvbGxlY3Rpb24uTmV3U2VyaWVzCiAgICAgICAgLkNoYXJ0VHlwZSA9IHhsTGluZQogICAgICAgIC5BeGlzR3JvdXAgPSAxCiAgICAgICAgLlhWYWx1ZXMgPSB4MQogICAgICAgIC5WYWx1ZXMgPSB5MQogICAgRW5kIFdpdGgKICAgIAogICAgV2l0aCAuU2VyaWVzQ29sbGVjdGlvbi5OZXdTZXJpZXMKICAgICAgICAuQ2hhcnRUeXBlID0geGxMaW5lCiAgICAgICAgLkF4aXNHcm91cCA9IDIKICAgICAgICAuWFZhbHVlcyA9IHgyCiAgICAgICAgLlZhbHVlcyA9IHkyCiAgICBFbmQgV2l0aAogICAgCkVuZCBXaXRoCgpFbmQgU3ViCgo=