Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


12687 / 13646 ツリー ←次へ | 前へ→

【9185】グラフの重ねあわせについて NH 03/11/20(木) 16:59 質問
【9190】Re:グラフの重ねあわせについて kein 03/11/20(木) 18:21 回答
【9192】Re:グラフの重ねあわせについて NH 03/11/20(木) 18:50 発言
【9196】Re:グラフの重ねあわせについて kein 03/11/20(木) 23:17 回答
【9197】Re:グラフの重ねあわせについて kein 03/11/20(木) 23:20 発言
【9198】Re:グラフの重ねあわせについて NH 03/11/20(木) 23:27 お礼

【9185】グラフの重ねあわせについて
質問  NH  - 03/11/20(木) 16:59 -

引用なし
パスワード
   グラフの重ねあわせについて教えてください。下の様な
データがある時日付から終値までを使って株価グラフが
出来ますが、そこに隣にある7日移動のデータを同じ
グラフに重ねて表示したいのですが、どのようにすれば
よろしいのでしょうか。
と言うか、出来るのかな?


日付           始値    高値    安値    終値     7日移動
2003/10/29    1477    1479    1431    1442    1374.86
2003/10/30    1450    1467    1442    1442    1376.43
2003/10/31    1454    1465    1444    1449    1383.43
2003/11/4     1496    1508    1489    1500    1405.71
2003/11/5         1503    1530      1500    1529    1435.29
2003/11/6      1521    1522    1469    1475    1456.29
2003/11/7         1485    1508    1473    1508    1477.86
2003/11/10    1500    1520    1478    1507    1487.14
2003/11/11    1466    1484    1440    1455    1489
2003/11/12    1456    1459    1432    1440    1487.71
2003/11/13    1453    1480    1445    1465    1482.71

【9190】Re:グラフの重ねあわせについて
回答  kein  - 03/11/20(木) 18:21 -

引用なし
パスワード
   移動平均線は、プロットされている系列(株価なら終値:系列4)から、直接グラフ上に
描画できます。別に移動平均を計算する数式は必要ないのです。マクロでやるなら
       

    Charts.Add
    With ActiveChart
     .SetSourceData Source:=_
     Sheets("Sheet1").Range("A1").CurrentRegion, PlotBy:=xlColumns
     .ChartType = xlStockOHLC
     .Location Where:=xlLocationAsNewSheet
     With .ChartGroups(1)
       .HasUpDownBars = True
       .DownBars.Interior.ColorIndex = 5
       .DownBars.Border.ColorIndex = 5
       .UpBars.Interior.ColorIndex = 6
       .UpBars.Border.ColorIndex = 6
     End With
     .HasLegend = False
    End With

というようなコードになります。

【9192】Re:グラフの重ねあわせについて
発言  NH  - 03/11/20(木) 18:50 -

引用なし
パスワード
   ▼kein さん:
>移動平均線は、プロットされている系列(株価なら終値:系列4)から、直接グラフ上に
>描画できます。別に移動平均を計算する数式は必要ないのです。

keinさん、すいません。現在マクロの記録から出来たコードに矢印で挟んだ部分を
追加して実行しましたが、ローソク足の部分が色付きになっただけなんですが。

With ActiveChart
  .ChartType = xlStockOHLC
  .SetSourceData Source:=Sheets("Sheet3").Range("A1:E61"), PlotBy _
    :=xlColumns
  .Location Where:=xlLocationAsNewSheet
  .HasTitle = True
  .ChartTitle.Characters.Text = "ローソク足"
  .Axes(xlCategory, xlPrimary).HasTitle = False
  .Axes(xlValue, xlPrimary).HasTitle = False
'------------------------------------------------- ↓追加部分
    With .ChartGroups(1)
       .HasUpDownBars = True
     .DownBars.Interior.ColorIndex = 5
     .DownBars.Border.ColorIndex = 5
     .UpBars.Interior.ColorIndex = 6
     .UpBars.Border.ColorIndex = 6
  End With
    .HasLegend = False
'-------------------------------------------------↑追加部分
End With

A1〜E61に日付 始値 高値 安値 終値 の列順でデータが入って
います。

【9196】Re:グラフの重ねあわせについて
回答  kein  - 03/11/20(木) 23:17 -

引用なし
パスワード
   あー・・すいません。自分の使っているコードから、コピペする部分を間違え
ました。移動平均線を出すのは

With .SeriesCollection(4).Trendlines _
  .Add(Type:=xlMovingAvg, Period:=13).Border
  .ColorIndex = 10
  .Weight = xlHairline
End With

というような感じになります。これで13日移動平均になります。
(引数 Period の値で決める) 従って全体としては・・

Sub MyChart()
  Dim PlotR As Range

  With Sheets("Sheet3")
   Set PlotR = .Range("A1", .Range("E65536").End(xlUp))
  End With 
  Charts.Add
  With ActiveChart
   .ChartType = xlStockOHLC
   .SetSourceData Source:=PlotR, PlotBy:=xlColumns
   .Location Where:=xlLocationAsNewSheet
   .HasTitle = True
   .ChartTitle.Characters.Text = "ローソク足"
   With .ChartGroups(1)
     .HasUpDownBars = True
     .DownBars.Interior.ColorIndex = 5
     .DownBars.Border.ColorIndex = 5
     .UpBars.Interior.ColorIndex = 6
     .UpBars.Border.ColorIndex = 6
   End With
   With .SeriesCollection(4).Trendlines _
   .Add(Type:=xlMovingAvg, Period:=7).Border
     .ColorIndex = 10
     .Weight = xlHairline
   End With
   .SizeWithWindow = True
   .Deselect
  End With
  Set PlotR = Nothing
End Sub

というようなコードになると思います。色については適当にパレット番号を指定
して下さい。

【9197】Re:グラフの重ねあわせについて
発言  kein  - 03/11/20(木) 23:20 -

引用なし
パスワード
   .HasLegend = False
も、どこかに入れておいて下さい。With ActiveChart 〜 End With の構文内です。

【9198】Re:グラフの重ねあわせについて
お礼  NH  - 03/11/20(木) 23:27 -

引用なし
パスワード
   いろいろ教えていただき、有難うございました。2つの移動平均を重ねることも
出来ました。これからもよろしくお願いしますm(__)m。

12687 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free