- ベストアンサー
Excel VBA API
質問させて頂きます。 Excel 2003 VBAで天気予報のAPIは使用可能でしょうか? また可能であるならば、どのようにすれば良いのか教えていただきたいです。 よろしくお願いします。
- みんなの回答 (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℃ <中略>
お礼
親切に詳細まで書いていただきありがとうございます。 またExcel2003で出来る、出来ないの条件分岐で困っていましたので助かりました。 対応有難うございます。