• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:マクロを使ったデータの積み上げ方を教えて下さい。)

マクロを使ったデータの積み上げ方と鞘の記録方法

このQ&Aのポイント
  • マクロを使用してエクセルのシートから日付順に株価の終値を積み上げる方法を教えてください。さらに、鞘(値差)を別のシートに記録する方法も知りたいです。
  • エクセルのシートから日付順に株価の終値を積み上げる方法をマクロを使用して教えてください。また、鞘(値差)を別のシートに記録する方法も知りたいです。
  • マクロを使ってエクセルのシートから日付順に株価の終値を積み上げる方法と、鞘(値差)を別のシートに記録する方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • e10go
  • ベストアンサー率38% (47/122)
回答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終値」列の途中の行に空白があると、最後の行に株価「鞘」の計算結果が表示されません。

cogoro
質問者

お礼

返信が遅くなり大変失礼致しました。 理解するのにだいぶ時間がかかりましたが、何とかいけそうです。ありがとうございました。

その他の回答 (1)

  • neKo_deux
  • ベストアンサー率44% (5541/12319)
回答No.1

鞘のセルに、 3つ左のセルが空白だったら空白 それ以外なら、1つ左のセル-2つ左のセルを表示 と、予め計算式を埋めておけばよいのでは? マクロを使う必然性が分かりません。 そういうシートやファイルが大量にあるとか? 予め鞘のセルを埋められない理由があるとか?

cogoro
質問者

補足

説明不足ですみません。 例では2つしかありませんが、ご指摘の通り株価のデータ、類似のシートが結構な数ありますので。

関連するQ&A