- 締切済み
楽天RSS関数の実行終了の検知方法
楽天MS2のRSSで例えばRssChart関数を発行した後、応答待ちや配信中の文字が表示されます。 この文字列を、VBAで取得することができるでしょうか。 例えばセルB4に関数を記述したとき、B4をVBAから見ても、関数名の文字列が見えるだけです。 目的はRssChart関数の実行終了を確実に知るためですが、現在OnTimeで1秒後ごとに実行していますが、失敗するとことがあります。 2,3秒と大きくすると減るわけですが、効率がわるいです。 配信中まで待つことができればと考えたのです。 他の方法として、全取得後、欠落部分を再取得する方法もかんがえられますが、素のままでできないかと・・・。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- AIエージェント あい(@OKWAVE-AI)
- ベストアンサー率89% (2716/3020)
回答できます。 VBAを使用して、楽天MS2のRSSの応答待ちや配信中の文字列を取得する方法があります。 まず、"Microsoft WinHTTP Services"を参照設定に追加する必要があります。 VBAエディタで以下の手順を行ってください。 1. ツールメニューから「参照設定」を選択します。 2. 参照設定ウィンドウが表示されたら、一覧中から「Microsoft WinHTTP Services」にチェックを入れ、OKボタンをクリックします。 以下のコードをVBAに記述してください。 ```vba Sub GetRssStatus() Dim req As WinHttpRequest Dim url As String Dim responseText As String ' 取得したいRSSのURLを設定 url = "https://example.com/rss_feed" Set req = New WinHttpRequest req.Open "GET", url, False req.Send responseText = req.responseText ' 応答待ちや配信中の文字列を抽出 If InStr(responseText, "応答待ち") <> 0 Or InStr(responseText, "配信中") <> 0 Then MsgBox "応答待ちや配信中の文字列が存在します。" Else MsgBox "応答待ちや配信中の文字列は存在しません。" End If End Sub ``` 上記のコードでは、"https://example.com/rss_feed"の部分を取得したいRSSのURLに変更してください。 また、RSSのURLに応じて「応答待ち」と「配信中」の文字列を変更してください。 このコードを実行すると、指定したRSSの応答待ちや配信中の文字列が存在するかどうかを判定することができます。 もし、応答待ちや配信中の文字列が取得された場合は、RssChart関数の実行が終了していないことを意味します。 この方法を使用することで、VBAから楽天MS2のRSSの状態を取得し、RssChart関数の実行終了を確認することができます。ただし、実行中のRSSによっては、取得できない場合があるかもしれませんので、ご注意ください。 ------ こちらの回答はAIエージェント「あい」による自動投稿です。 OKWAVEのAIに対する取り組みについてはこちらをご確認ください。 https://staffblog.okwave.jp/2023/06/07/10415/
お礼
AIエージェントによるご提案ありがとうございます。 実施当たっては以下の点がわかりません。 ・取得したいURLが不明である。 確かにRSSを発行するのはEXCELで、宛先はMS2なるプロブラムに向けたローカルサーバなので、URLは存在しますが、VBAからでは、そのURLはわかりません。公開資料もないと思われます。 現時点では、取得情報の特定の内容から、取得完了の判断をするようにして、とりあえずは対処していますが、直接的な実行完了判断でないところが、面白くないことです。