
エクセルで以下のようなデータを蓄積していくシートから、
date 株価A終値 株価B終値
05/12/01 8560 12360
05/12/02 8590 12580
05/12/05 9000 12690
05/12/06 8550 12500
05/12/07 8600 12420
鞘(値差)を記録していく以下のような別シートに終値を日付順に積み上げていくにはどのようにすればよいのでしょうか?ご指導のほどよろしくお願いします_(._.)_
date 株価A終値 株価B終値 鞘
05/12/01 8560 12360 3800
05/12/02 8590 12580 3990
05/12/05 9000 12690 3690
05/12/06 8550 12500 3950
(この場合7日以降を積み上げていきたい)
No.2ベストアンサー
- 回答日時:
こんにちわ。
>例では2つしかありませんが、ご指摘の通り株価のデータ、類似のシートが結構な数ありますので。
それでしたら、こうすればどうでしょう。
それぞれのシートを検索して、株価データがあれば、シート内の項目「鞘」に計算結果を入力する。
で、どうでしょう。
一応、A~C列に「date,株価A終値,株価B終値」があり、2行目からデータが始まると仮定して、マクロを作りました。
マクロは2つあり、「s_SheetSheath」で株価データシートを検索して、「s_Sheath」で株価「鞘」を計算して結果を表示します。
'--------マクロコード--------始まり
Sub s_SheetSheath()
'株価データシートの検索
Dim sh As Worksheet
For Each sh In Worksheets
If sh.Range("A1") = "date" _
And sh.Range("B1") = "株価A終値" _
And sh.Range("C1") = "株価B終値" Then _
s_Sheath sh
'A1~C1セルに"date","株価A終値","株価B終値"とあれば、株価「鞘」を計算する
Next sh
End Sub
Sub s_Sheath(sh)
'株価「鞘」の計算
Dim iCount As Integer
Dim i As Integer
sh.Activate '計算する株価データシートに移動
iCount = Application.CountA(sh.Range("C:C"))
'「株価B終値」列のデータ数を数える
If iCount = 1 Then Exit Sub
'「株価B終値」列のデータ数が「0」の場合、このシートの株価「鞘」の計算を中止
For i = 2 To iCount
sh.Cells(i, 4) = sh.Cells(i, 3) - sh.Cells(i, 2)
Next i
End Sub
'--------マクロコード--------終わり
なお、注意事項として、「株価B終値」列の途中の行に空白があると、最後の行に株価「鞘」の計算結果が表示されません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
人気Q&Aランキング
-
4
ピクセラ(6731)について 2017...
-
5
河西工業の業績悪化について
-
6
終値の月平均株価がわかるホー...
-
7
「株価インパクト」と「売り需...
-
8
日付を指定したらその日の終値...
-
9
株価の時価総額の単位 T Bっ...
-
10
PBRがマイナスになっている企業...
-
11
貸借取引の申込停止について
-
12
TOB後の株価
-
13
iPhone の株価というアプリのア...
-
14
新株発行と新株予約権の違い
-
15
ファイナンスHPによってPERが違...
-
16
三菱自動車が 上がってますが
-
17
株価が動かない理由は?
-
18
下落率の計算方法を教えてくだ...
-
19
ライブドアの株式分割について
-
20
毎日終値で買って始値で売ると...
おすすめ情報
公式facebook
公式twitter