2013年07月25日
第3回 X軸とY軸の設定
(1) X軸の設定
Set wss = ThisWorkbook.Worksheets(通貨ペア)
Set wsd = ThisWorkbook.Worksheets("チャート")
Set chobj = wsd.ChartObjects.Add(x, y, 幅, 高さ)
Set ch = chobj.Chart
Set x軸 = wss.Range(wss.Cells(開始行, データの日時), wss.Cells(終了行, データの日時))
ch.Axes(xlCategory).CategoryNames = x軸
ch.Axes(xlCategory).CategoryType = xlCategoryScale
ch.Axes(xlCategory).TickLabelSpacing = 実表示本数 / 20
x軸には日時を表示します。X軸に対応するオブジェクトは Chart オブジェクトの Axes(xlCategory) になります。このオブジェクトの CategoryNames に range オブジェクトのX軸をセットします。 CategoryType には xlCategoryScale をセットします。TickLabelSpacing には何本おきに日時を表示するかを指定します。
(2) Y軸の設定
ch.Axes(xlValue).HasMajorGridlines = True
y軸最大値最小値算出 最大値, 最小値, Y軸最大値, Y軸最小値
ch.Axes(xlValue, xlPrimary).MinimumScale = Y軸最小値
ch.Axes(xlValue, xlPrimary).MaximumScale = Y軸最大値
Y軸には価格を表示します。Y軸に対応するオブジェクトは Chart オブジェクトの Axes(xlValue) になります。このオブジェクトの HasMajorGridlines をTrueにすると価格の横線が表示されます。
Chart オブジェクトの Axes(xlValue, xlPrimary) オブジェクトの MinimumScale に最小価格をセットします。これがグラフの底になります。 MaximumScale に最大価格をセットします。これがグラフの天井になります。y軸最大値最小値算出ルーチンで計算します。
(3) Y軸の計算
Private Sub y軸最大値最小値算出(最大値, 最小値, Y軸最大値, Y軸最小値)
値幅 = 最大値 - 最小値
値幅 = 値幅 / 5
倍率 = 1
単位 = 1
While 値幅 < 1
  倍率 = 倍率 * 10
  単位 = 単位 / 10
  値幅 = 値幅 * 10
Wend
Y軸最大値 = Fix(最大値 * 倍率) * 単位
Y軸最小値 = Fix(最小値 * 倍率) * 単位
Y軸最大値 = Y軸最大値 + 単位 * 2
Y軸最小値 = Y軸最小値 - 単位 * 2
End Sub
y軸最大値最小値算出ルーチンです。
入力引数は最大値と最小値とです。価格の最大値と最小値を渡します。
出力引数はY軸最大値とY軸最小値です。
USDJPY、EURUSD 等を考慮して小数点以下何桁目がキリのいい値か計算し、若干の余白を加えて出力します。
エクセルファイルです。
    ダウンロード
前へ   次へ
Set wss = ThisWorkbook.Worksheets(通貨ペア)
Set wsd = ThisWorkbook.Worksheets("チャート")
Set chobj = wsd.ChartObjects.Add(x, y, 幅, 高さ)
Set ch = chobj.Chart
Set x軸 = wss.Range(wss.Cells(開始行, データの日時), wss.Cells(終了行, データの日時))
ch.Axes(xlCategory).CategoryNames = x軸
ch.Axes(xlCategory).CategoryType = xlCategoryScale
ch.Axes(xlCategory).TickLabelSpacing = 実表示本数 / 20
x軸には日時を表示します。X軸に対応するオブジェクトは Chart オブジェクトの Axes(xlCategory) になります。このオブジェクトの CategoryNames に range オブジェクトのX軸をセットします。 CategoryType には xlCategoryScale をセットします。TickLabelSpacing には何本おきに日時を表示するかを指定します。
(2) Y軸の設定
ch.Axes(xlValue).HasMajorGridlines = True
y軸最大値最小値算出 最大値, 最小値, Y軸最大値, Y軸最小値
ch.Axes(xlValue, xlPrimary).MinimumScale = Y軸最小値
ch.Axes(xlValue, xlPrimary).MaximumScale = Y軸最大値
Y軸には価格を表示します。Y軸に対応するオブジェクトは Chart オブジェクトの Axes(xlValue) になります。このオブジェクトの HasMajorGridlines をTrueにすると価格の横線が表示されます。
Chart オブジェクトの Axes(xlValue, xlPrimary) オブジェクトの MinimumScale に最小価格をセットします。これがグラフの底になります。 MaximumScale に最大価格をセットします。これがグラフの天井になります。y軸最大値最小値算出ルーチンで計算します。
(3) Y軸の計算
Private Sub y軸最大値最小値算出(最大値, 最小値, Y軸最大値, Y軸最小値)
値幅 = 最大値 - 最小値
値幅 = 値幅 / 5
倍率 = 1
単位 = 1
While 値幅 < 1
  倍率 = 倍率 * 10
  単位 = 単位 / 10
  値幅 = 値幅 * 10
Wend
Y軸最大値 = Fix(最大値 * 倍率) * 単位
Y軸最小値 = Fix(最小値 * 倍率) * 単位
Y軸最大値 = Y軸最大値 + 単位 * 2
Y軸最小値 = Y軸最小値 - 単位 * 2
End Sub
y軸最大値最小値算出ルーチンです。
入力引数は最大値と最小値とです。価格の最大値と最小値を渡します。
出力引数はY軸最大値とY軸最小値です。
USDJPY、EURUSD 等を考慮して小数点以下何桁目がキリのいい値か計算し、若干の余白を加えて出力します。
エクセルファイルです。
    ダウンロード
前へ   次へ
【このカテゴリーの最新記事】
-
no image