【初月無料キャンペーン中】gooドクター

RSSでリアルタイムデータ(時刻と数値)が1秒間隔で更新しています。

刻々と変化するデータの中から指定時刻のデータだけ抜き出したいです。
A1セルに時刻、B1セルに数値(A、Bともに1秒同時更新)です。
刻々と時間が経過し05時24分51秒になった時点の数値だけ抽出するやり方があればご教授ください。
宜しくお願い致します。

A1セル時刻00:00:00/B1セル数値〇〇〇

質問者からの補足コメント

  • こんばんは。
    複数の指定時刻のデータを抜き出したいので、05時24分51秒になったらというのは、あくまで指定時刻の一つの例として記載しました。
    1分に1データ、トータル数時間分の値を抜き出したいと考えております。

    エクセルには、あるシステムをアドインして、そのシステムのRSSを利用してます。

    >B1のセルの値を抜き出して、どうするのでしょうか? C1セルに書き出す?⇒仰っる通り、C1セルに書き出しだいです。

    Excel VBAのイベントは未経験なので、なるべくなら表計算で済ませたいのですが、やはりExcel VBAを使うしかないでしょうか?

    No.1の回答に寄せられた補足コメントです。 補足日時:2021/10/14 01:33
  • ご教授頂きありがとうございます。何分、VBAのプログラム未経験者で申し訳なくエラー以前に、初歩的な書き込み方法から躓いており恐れ入りますが標準モジュールのModule1に下記をコピペすれば宜しいでしょうか?
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address <> "$A$1" Then Exit Sub
    If Target.text Like "*:*:00" Then
    With Application
    .EnabeleEvents = False
    cells(.Worksheetfunction.CountA(Range("C1:C9999"))+1,3).value = Range("B1").value
    .EnabeleEvents = True
    End With
    End If
    End Sub

    No.2の回答に寄せられた補足コメントです。 補足日時:2021/10/14 14:04
  • 何度もお手数申し訳ございません。
    添付のもので宜しいのでしょうか。
    カーソルのところで「実行(R)」※Sub/ユーザーフォームの実行
    ⇒マクロ名を任意で入力⇒実行(R)
    のような形で合ってますでしょうか。

    「エクセルに関しての質問」の補足画像3
    No.3の回答に寄せられた補足コメントです。 補足日時:2021/10/15 02:26
  • お手数お掛けしてます。

    警告を表示してすべてのマクロを無効にするのチェックボックスにチェックを入れているはずなのに、ブックを開いたときに警告が表示されない(有効にするかどうか聞いてこない)のは、何か原因がありますでしょうか?

    「エクセルに関しての質問」の補足画像4
    No.4の回答に寄せられた補足コメントです。 補足日時:2021/10/15 13:34
  • すべてのマクロを有効にしても、ブックを開いた時に何も警告は出ないようです。
    恐らく私が何かを間違えているのだと思いますが。

    No.5の回答に寄せられた補足コメントです。 補足日時:2021/10/15 13:50
  • はい、セルA1は、RSSの機能で時間が1秒毎に変わっています。
    手入力で時刻入力すると実行時エラー438が出てきます。

    A1が、○:○:00の時に、B1の値を、C1に転記で合ってます。

    「エクセルに関しての質問」の補足画像6
    No.6の回答に寄せられた補足コメントです。 補足日時:2021/10/15 14:14
  • お手数お掛けします。
    デバックを押すと添付画像のように黄色箇所があります。

    >RSSの機能で、○:○:00になっても、何も変わらないでしょうか?
    ⇒RSSの機能で○:○:00になっても変わらないようです。
    恐らく私の方で何かしら間違えていると思います。

    「エクセルに関しての質問」の補足画像7
    No.7の回答に寄せられた補足コメントです。 補足日時:2021/10/15 16:55
gooドクター

A 回答 (8件)

⇒RSSの機能で○:○:00になっても変わらないようです。


 → すみません。 そうなると、このChangeイベントでは、RSSで変化
したA1セルの情報を取得できない様です。 質問者さんのデータを取得
したいという事が、この方法では無理という事になります。力及ばず。。。

手入力の時には、マクロのイベントは機能しており、15:00:00の入力では、
動作しようとしていて、EanbleEvents = Falseのところまで処理が進んで
いますので。 ただ、エラーが出る理由が分かりませんが。。。
仮にこのエラーを回避できたとしても、やりたい事が叶わないので、申し訳ないですが、一旦、ここで終了とさせて下さい。

もう一度同じ質問をして、別の方から他に良い対応方法の情報があるのを待つのが良いかも知れません。。。
    • good
    • 1
この回答へのお礼

承知致しました。

そもそも私自身の基本的な知識や経験がない状況で、無理強いした形となり申し訳ないと思っております。

何度も、お手数とお力添え頂きありがとうございます。
心より感謝申し上げます。

ありがとうございました。

お礼日時:2021/10/15 17:35

返信、遅くなりました。


RSSの機能で、○:○:00になっても、何も変わらないでしょうか?
 → もし、そうなら、イベントが働いていない状態になりますので、
このマクロでは、データが取れないとなりますね。。。

因みに、デバッグを押すと、どうなるでしょうか? コードで黄色くなっているところが、エラーの原因となっている場所になります。
この回答への補足あり
    • good
    • 1

セルA1は、時間が1秒毎に変わっているのでしょうか?


(RSSの機能で、時間が変わる?)

A1が、○:○:00の時に、B1の値を、C1に転記するかと思ったのですが。
A1の表示形式は、○:○:○ となっているでしょうか?
B1に何か入っている状態で、手入力で、12:00:00 と入れたら、
何か変わるでしょうか?
この回答への補足あり
    • good
    • 1

一旦、すべてのマクロを有効にする にして、Excelを閉じた後に、再度、


xlsmファイルを開いてみてどうでしょうか?
この回答への補足あり
    • good
    • 1

こんばんは。



Excelのファイルを、名前を付けて保存で、マクロありブックのxlsmを選択
してファイルを保存する。
今のファイルを開いて、マクロを有効にするで、どうでしょうか?
セル:A1の値が変わると、イベントが発生して、今回入力したマクロが
動作すると、C1に記載されるかと思うのですが。
この回答への補足あり
    • good
    • 1

最初の回答のリンクも参考になるかと思うのですが。



下記を参考に、シートモジュールになります。
シート名は、A1セルが変化するシートです。

https://www.tailtension.com/excelvba/2705/

ただ、そのイベントが使えるかが、こちらには分からないので、全く
動作しない可能性もありますので。。。
この回答への補足あり
    • good
    • 1

No.1の者です。



Excelの関数ですと、値の保持が難しいと思います。C1に結果が出ても、
1分後には、元の値がなくなって、新しい値だけが表示されるかと。
(若しかしたら、やり方があるかも知れませんが、私は知らないです。)

RSSのデータが更新された時に、イベントが発生する事が前提になります。

下記手書きですが、ちゃんと動作すれば、00秒になった時に、C列の上から
その時のB1の値を記載していくと思います。(動作確認は未です。)
エラーが出た場合、すみませんが、適宜修正してみて下さい。
タイミングが合えば、回答すますが。。。

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$A$1" Then Exit Sub
If Target.text Like "*:*:00" Then
With Application
.EnabeleEvents = False
cells(.Worksheetfunction.CountA(Range("C1:C9999"))+1,3).value = Range("B1").value
.EnabeleEvents = True
End With
End If
End Sub
この回答への補足あり
    • good
    • 1

こんばんは。



RSSでリアルタイムデータとの事ですが、Excelの基本機能ではないと思い
ます。 どの様に動いているのでしょうか?
A1セルが、05時24分51秒になったらという事は、、1日に1データ、B1の
セルの値を抜き出して、どうするのでしょうか? C1セルに書き出す?

Excel VBAのイベントは、使えるのでしょうか?
使えるなら、Worksheet_Changeで、A1の時刻をチェックして、B1の値を
取得するとかができそうですが。
https://vbabeginner.net/worksheet_change/
この回答への補足あり
    • good
    • 1
この回答へのお礼

こんばんは。
複数の指定時刻のデータを抜き出したいので、05時24分51秒になったらというのは、あくまで指定時刻の一つの例として記載しました。
1分に1データ、トータル数時間分の値を抜き出したいと考えております。

エクセルには、あるシステムをアドインして、そのシステムのRSSを利用してます。

>B1のセルの値を抜き出して、どうするのでしょうか? C1セルに書き出す?⇒仰っる通り、C1セルに書き出しだいです。

Excel VBAのイベントは未経験なので、なるべくなら表計算で済ませたいのですが、やはりExcel VBAを使うしかないでしょうか?

お礼日時:2021/10/14 01:30

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

gooドクター

このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング