• ベストアンサー

Excel VBA API

質問させて頂きます。 Excel 2003 VBAで天気予報のAPIは使用可能でしょうか? また可能であるならば、どのようにすれば良いのか教えていただきたいです。 よろしくお願いします。

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

  • ベストアンサー
  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.1

APIについては識者にお任せして、Yahoo!天気のRSSは、下記の通り読めました。 二次利用NGとの事なので、自分のホームページに表示したりしてはダメという事でしょうか。 http://www.yahoo-help.jp/app/answers/detail/p/616/a_id/44559 地点の番号は下記でお調べ下さい。 http://weather.yahoo.co.jp/weather/rss/ 得意のとりあえず出来たというレベルですが、ご参考まで。 XMLからの取得よりも、泥臭い正規表現の方で手こずりました... 'Microsoft XML ?.?に参照設定要 Sub readRSS() Dim xmlDoc As New DOMDocument Dim itemlist As IXMLDOMNodeList Dim myItem As String Dim i As Long, j As Long Dim regEx As Object Dim matches As Object Const strLocation As String = "4410" Set regEx = CreateObject("VBScript.RegExp") regEx.MultiLine = False '半角の(と全角の(に要注意 regEx.Pattern = "【 (\d+日(\S)) (\S+(\S+)).+】 (\S+) - (\S+℃/.+℃).+" regEx.IgnoreCase = True regEx.Global = False xmlDoc.async = False xmlDoc.Load "http://rss.weather.yahoo.co.jp/rss/days/" & strLocation & ".xml" '<rss version="2.0"><channel><item><title> Set itemlist = xmlDoc.getElementsByTagName("item") For i = 0 To itemlist.Length - 1 myItem = itemlist(i).SelectSingleNode("title").Text Set matches = regEx.Execute(myItem) If matches.Count > 0 Then For j = 0 To matches(0).submatches.Count - 1 Debug.Print matches(0).submatches(j) Next j End If Next Set matches = Nothing Set regEx = Nothing Set xmlDoc = Nothing End Sub 実行結果 4日(土) 東京(東京) 晴後曇 12℃/2℃ 5日(日) 東京(東京) 晴後曇 7℃/1℃ <中略>

noname#193651
質問者

お礼

親切に詳細まで書いていただきありがとうございます。 またExcel2003で出来る、出来ないの条件分岐で困っていましたので助かりました。 対応有難うございます。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • EXCEL VBA でAPIを使って

    EXCEL VBA でAPIを使って音源を再生しているのですが、すぐに再生されるときと、再生されるまでに3秒くらいかかるときがあるのですが、なぜでしょうか? 音源の再生のコードは下記のとおりです。 Call mciSendString("Play " & FILE_NAME1, "", 0, 0) 素人の質問で申し訳ありませんが、どなたか解決方法を教えてください。

  • vbaで出来る事をわざわざAPIを使う理由・必要性

    vbaで出来る事をわざわざAPIを使う理由・必要性は? 他人が作ったエクセルファイルを操作しているのですが ところどころにAPIが使われています。 しかし、「なぜvbaでできるのにAPIを使ってるのだろう?」と思う部分があります。 例えば、 時間を止め対場合、 vbaで Sub vba() Application.Wait Now + TimeSerial(0, 0, 2) End Sub とすればいいのに、 APIで Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) Sub API() Sleep 2000 End Sub としています。 APIを使う事によって、どのようなメリットがあるのでしょうか?

  • VBAでのWindows API の使用

    VBA上でWindows APIを使用することに関する特別なリスクはありますか? たとえば、レジストリがいじれるようになってしまうとかです。

  • エクセルVBAでウィンドウを透明にする!

    VBAでゲームを作っているホームページを見たら、エクセルのウィンドウを透明にしている方がいました。 これってかなりムツカシイでしょうか?なんかレイヤードウィンドウを使用するとかなんとか調べれてみたら浅いところだけ分かりましたが、具体的にどうするのかちょっと分かりません。 可能であれば使用するAPI関数と、各パラメーターの説明など、教えていただけませんでしょうか?もしくは、解説しているホームページが、マイクロソフトヘルプ以外のページであれば、非常に助かります。 よろしくお願いいたします。

  • グーグルAPIとは?

    vbaで http://www.excellenceweb.net/vba/api/what_windows_api.html このようなAPIは良く使っているのですが ネットでapiについて検索すると 「グーグルAPI」と言う言葉をよく見かけるのですが これは私が使っているvbaのAPIとは違う意味なのでしょうか? 二つの違いがよくわかりません。 というかグーグルAPIが何なのかよくわかりません。

  • Excel VBA でのAPI呼び出しが・・・

    マクロ初級です。 windowsXP(SP3) office2007 Excelのマクロで、APIのSetActiveWindowを使おうとしましたが、宣言のところで エラーがでました。  設定は、  Public Declare Function SetActiveWindow Lib "user32" (ByVal hWnd As Long) As Long  もしくは  Public Declare Function SetActiveWindow Lib "user32" (ByVal hWnd&) As Long  コンパイルエラー  定数、固定長文字列、配列、ユーザ定義型および Declare ステートメントは  オブジェクトモジュールのパブリックメンバとしては使用できません。 ウィンドウをアクティブな状態等に用いたいのですが、定義の仕方が悪いのでしょうか? 皆さま、ご教授下さい。

  • エクセル VBAについて

    現在エクセルのVBAを勉強したいと考えています。 VBAを使用するにはVisual Basicをインストールしないといけないのでしょうか?普通にエクセルをインストールしてさえいれば使用できるのでしょうか?

  • エクセルVBAを使ってタグを入れたい

    エクセルのVBAで、<p>~</p>、<p>&nbsp;</p>、<br />のタグを入れたい! A1のセルには・・・ ----------------------------------------------- 今日は、良い天気ですね。 あなたの好きな食べ物は、 何ですか? 私は、野菜料理が好きです。 ----------------------------------------------- このようにあります。 これをエクセルVBAでB列に以下のように入れたいです。 ----------------------------------------------- <p>今日は、良い天気ですね。</p> <p>あなたの好きな食べ物は、<br /> 何ですか?</p> <p>&nbsp;</p> <p>私は、野菜料理が好きです。</p> ----------------------------------------------- ちなみに、A列には各セルに文章があります。 どなたかVBAの書き方を教えていただけないでしょうか? よろしくお願いします。

  • エクセル VBA を覚えたいのですが。2003と2007の違いについて

    はじめまして。これから、仕事などで、使用したいので、エクセル VBAやマクロを覚えたいと思っているまだ、何も知らない初心者なのですが、本屋さんにいくと、VBA入門本は当たり前ですが、2003と2007があります。私は今、エクセル2003を使用してますが、やはりこれから、VBAを覚えようとすると、やはり、2007の方のがよいのでしょうか?せっかくたとえば2003を覚えてもまた、2007やその先の「200X」みたいなものを覚えなおさなきゃいけないものなのでしょうか? 初心者すぎて、質問自体が?部分があるかもしれませんが、どうかよろしくお願いします。

  • エクセル2000で天気予報自動表示

    エクセル2000で天気予報自動表示「地図と天気予報スマートタグを使用できるようにする」機能を使いたい 下記の機能をエクセル2000で使いたいのですが良くわかりません http://www.moug.net/tech/exopr/0100034.htm よろしくお願いします。 XPです。