• ベストアンサー

EXCELで現在時刻をスタンプする方法

株価が一定率上昇した時刻を集計する方法を考えています。 WEBクエリーをいうのを使って現在の株価をEXCELに取得することはできるようになりました。そこで例えば株価が5%上昇した時刻をスタンプしたいと思っています。IF文で5%上昇したらNOW()時間を表示するということで一旦は時刻が表示されるのですが、クエリが更新される度に見に行ってしまうので最初の時間が更新されてしまいます。 (1)最初に5%を超えた時間を残したい。 (2)5%を割ったらクリアしたい。 ということを実現する方法があれば教えていただけますか。 VBAというのを使えば色々できるようなのですが、ちょっと苦戦しています。関数だけで解決できるのが一番いいのですが・・・。 よろしくお願いします。

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

  • ベストアンサー
  • hige_082
  • ベストアンサー率50% (379/747)
回答No.3

関数では無理 >IF文で5%上昇したらNOW()時間を表示する このセルを利用したマクロを作ってみた 条件は、IF文が5%上昇したらNOW、5%を割ったら""と成っていること WEBクエリをこちらで再現していないので、うまくいくかどうか分からない コピーしたファイルで試すこと 対象のシートタブを右クリック-コードの表示 以下のマクロをコピペ ←の行を書き換える '------------------------------------------------------------ Private Sub Worksheet_Change(ByVal Target As Range) Dim rng_in, rng_out As Range Dim 式を設定してあるセル, 保持用セル As String 式を設定してあるセル = "a1"  '←IF文の式のあるセルに書き換える 保持用セル = "a2"  '←書き出したいセルに書き換える Set rng_in = Range(式を設定してあるセル) Set rng_out = Range(保持用セル) If rng_in <> "" And rng_out = "" Then rng_out = rng_in End If If rng_in = "" And rng_out <> "" Then rng_out = "" End If End Sub '------------------------------------------------------------ うまくいったかな?

ken1967
質問者

お礼

うまくいきました。 このロジックは色々応用できそうですし、VBAも少しは使えるようになりました。 本当にありがとうございました。

ken1967
質問者

補足

うまくいきました。 このロジックは色々応用できそうですし、VBAも少しは使えるようになりました。 本当にありがとうございました。

その他の回答 (2)

  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.2

マクロかで  IFを使って場合わけをし   5%を超えたら、記録セルをIFで再度参照し、高覧ならコピー&ペースト(値だけ)を行う。   5%を切ったら、記録セルの値をクリア  

  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.1

関数は随時計算されるので、固定した時刻を残す事はできません。 VBAか手入力が必用になります。

関連するQ&A

専門家に質問してみよう