- ベストアンサー
マクロを使ったデータの積み上げ方と鞘の記録方法
- マクロを使用してエクセルのシートから日付順に株価の終値を積み上げる方法を教えてください。さらに、鞘(値差)を別のシートに記録する方法も知りたいです。
- エクセルのシートから日付順に株価の終値を積み上げる方法をマクロを使用して教えてください。また、鞘(値差)を別のシートに記録する方法も知りたいです。
- マクロを使ってエクセルのシートから日付順に株価の終値を積み上げる方法と、鞘(値差)を別のシートに記録する方法を教えてください。
- みんなの回答 (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終値」列の途中の行に空白があると、最後の行に株価「鞘」の計算結果が表示されません。
その他の回答 (1)
- neKo_deux
- ベストアンサー率44% (5541/12319)
鞘のセルに、 3つ左のセルが空白だったら空白 それ以外なら、1つ左のセル-2つ左のセルを表示 と、予め計算式を埋めておけばよいのでは? マクロを使う必然性が分かりません。 そういうシートやファイルが大量にあるとか? 予め鞘のセルを埋められない理由があるとか?
補足
説明不足ですみません。 例では2つしかありませんが、ご指摘の通り株価のデータ、類似のシートが結構な数ありますので。
お礼
返信が遅くなり大変失礼致しました。 理解するのにだいぶ時間がかかりましたが、何とかいけそうです。ありがとうございました。