
ご質問させていただきます。
Excel2007で15分足の株価チャートを表示させています。VBAでリアルタイムデータを15分毎に記録してチャートを表示しています。このチャートに最初から水平線を何本か表示させておきたいのです。
水平線の価格は事前に計算した固定値で、リアルタイムデータとは無関係ですが、毎日変更します。
もう少し具体的に言いますと、毎日午前9時からリアルタイムデータの記録を開始するのですが、水平線の値は9時前に計算できており、日中に変更することはないため、最初からチャートに表示させておきたいのです。
どなたか教えていただけないでしょうか?
なお、当方はExcelやVBAに関しては初歩的な知識しかありません。
よろしくお願いいたします。
No.2ベストアンサー
- 回答日時:
別案として、系列を追加する方法ですが、
"Sheet1"が該当シート、
Chartのデータ範囲がA2:E100 だとします。
F2:F100セル、G2:G100セルを作業エリアとして、上限値と下限値をセットします。
(例えばF2セルに上限値を入力するならF3セル以降 =F2 などの式)
Sub test()
With Sheets("Sheet1").ChartObjects(1).Chart
With .SeriesCollection.NewSeries
.AxisGroup = 2
.Values = Sheets("Sheet1").Range("F2:F100")
.Border.Color = vbRed
End With
With .SeriesCollection.NewSeries
.AxisGroup = 2
.Values = Sheets("Sheet1").Range("G2:G100")
.Border.Color = vbRed
End With
End With
End Sub
追加した系列の数値を第2軸にしますので、既に第2軸を使っているチャートには使えません。
また、更新されたデータによってy軸の最大値|最小値が変動するような場合は
数値軸を合わせるために、やはりVBA更新時に以下のコードを Call しなければいけません。
Sub try2()
Dim c As Chart
Set c = Sheets("Sheet1").ChartObjects(1).Chart
With c.Axes(xlValue, xlSecondary)
.MaximumScale = c.Axes(xlValue, xlPrimary).MaximumScale
.MinimumScale = c.Axes(xlValue, xlPrimary).MinimumScale
End With
Set c = Nothing
End Sub
end-u 様
ご回答ありがとうございます。
やりたいことができました!
ご親切に別案まで教えていただき感謝いたします。
この度は本当にありがとうございました。
No.1
- 回答日時:
チャートに系列を追加し、セルを参照させて表示を自動更新にした方が良いのだとは思いますが、
現状のチャート種類によっては、ちょっと面倒な作業になりそうです。
>VBAでリアルタイムデータを15分毎に記録してチャートを表示しています。
どうせVBAで処理されるのですから、1つの案として
まずLineShapeを追加しておいて、VBAでデータ更新する時にLineShapeの表示位置を調整する..
という方法が考えられます。
Sub ラインの追加() '1回だけで良い
On Error GoTo errH
'ActiveSheetの1つ目のChart
'またはChartをアクティブにして実行するなら
'With ActiveChart 'に変えても良い
With ActiveSheet.ChartObjects(1).Chart
With .Shapes.AddLine(0, 0, 100, 0)
.Name = "上限"
.Line.ForeColor.RGB = RGB(255, 0, 0)
End With
With .Shapes.AddLine(0, 0, 100, 0)
.Name = "下限"
.Line.ForeColor.RGB = RGB(255, 0, 0)
End With
End With
errH:
If Err.Number <> 0 Then MsgBox Err.Number & "::" & Err.Description
End Sub
上記コードでLineを2本追加します。
後は、VBA更新時に以下のコードを Call すれば良いです。
Sub try()
Dim T As Single 'y軸のTop位置
Dim H As Single 'y軸のHeight
Dim L As Single 'x軸のLeft位置
Dim W As Single 'x軸のWidth
Dim mx As Single 'y軸最大値
Dim mn As Single 'y軸最小値
Dim gp As Single '上限と下限の差
Dim up '上限
Dim dn '下限
On Error GoTo errH
With Sheets("Sheet1")
up = .Range("X1").Value
dn = .Range("X2").Value
With .ChartObjects(1).Chart
With .Axes(xlValue)
T = .Top
H = .Height
mx = .MaximumScale
mn = .MinimumScale
End With
With .Axes(xlCategory)
L = .Left
W = .Width
End With
gp = mx - mn
With .Shapes("上限")
.Top = (mx - up) * H / gp + T
.Left = L
.Width = W
End With
With .Shapes("下限")
.Top = (mx - dn) * H / gp + T
.Left = L
.Width = W
End With
End With
End With
errH:
If Err.Number <> 0 Then MsgBox Err.Number & "::" & Err.Description
End Sub
>With Sheets("Sheet1") 'シート名
> up = .Range("X1").Value '上限を記録しておくセル
> dn = .Range("X2").Value '下限を記録しておくセル
この箇所は実際の環境に合わせて適宜変更してください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP PHP MySql ページング 2 2022/09/20 06:38
- Excel(エクセル) VBAでユークリッド距離を用いて1番近い物を表示 表 裏 縦 横 高さ 縦 横 高さ 名前 1 45 9 2022/10/23 16:52
- Visual Basic(VBA) Excel VBA 書式変更で困ってます。 オートフィルターの日付フィルターを用いて データの絞り込 2 2022/07/26 22:16
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) Excel VBAのリストボックスの値を他のフォームに反映させる方法を教えてください。 2 2023/07/14 14:06
- Excel(エクセル) 至急 Excel日付表示設定教えてください Excelの日付表示ですが、他者から送られてくるExce 6 2023/02/03 11:01
- 日本株 株式分割後の出来高について 4 2023/04/04 08:09
- Visual Basic(VBA) EXCEL VBAで NHK NEWSの NEWSデータ内容取得が できない 1 2023/04/09 12:26
- Excel(エクセル) iphonからone driveに保存してあるExcelを閲覧すると表示の仕方がちがうデータ 2 2022/12/21 13:51
- Excel(エクセル) Excelで全クラスのランキング表を作成したい 4 2022/05/24 15:28
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
数学 九大文系志望です。今年の...
-
どんな手法の使い手?
-
チャートマスター
-
円・ドル・ユーロの過去のレー...
-
FXは具体的にどのようなことを...
-
自分でテクニカル分析を作るに...
-
MT4のヒストリカルセンタにイン...
-
一つのチャートに平均足とロー...
-
FXチャートのテクニカル指標...
-
FX、東京時間足チャートを見...
-
fxについて 業者ごとにチャート...
-
エクセルのチャートでX軸がセ...
-
指標発表でも無いときに、急に...
-
あまり損切りしない、というこ...
-
FX経験者の方、初心者の頃はど...
-
過去の為替チャート
-
投資するなら
-
為替の金融工学的なモデリング...
-
ドル円1時間足は、 押し安値を...
-
為替手数料の質問
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
数学 九大文系志望です。今年の...
-
エクセルのチャートでX軸がセ...
-
TradingViewでは、というか、円...
-
MT4のT/Pの設定が無視される?
-
MT4のヒストリカルセンタにイン...
-
GFTとは?
-
MT4のサブウインドウの左上の表...
-
FXのテクニカル指標について
-
チャート機能のポイント&フィ...
-
FX のカラクリについて
-
macに対応している過去何年分か...
-
仮想通貨の投資について、経験...
-
MT4で並び順を指定してのチャー...
-
XM MT4の初心者です。チャート...
-
一ヶ月どれくらいが目標ですか??
-
携帯電話でリアルタイムチャート
-
USDJPYのチャート画面で、150.0...
-
フォレックステスター2について
-
チャート画像をワード・エクセ...
-
FXは具体的にどのようなことを...
おすすめ情報