質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

正規表現

正規表現とは特定の文字列によるパターンマッチングを行う際に用いられる宣言型プログラミングです。

受付中

正規表現でWEBからデータを取得しようとするとsendメソッドでエラーが出る

haruno_uchida
haruno_uchida

総合スコア0

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

正規表現

正規表現とは特定の文字列によるパターンマッチングを行う際に用いられる宣言型プログラミングです。

1回答

0評価

1クリップ

43閲覧

投稿2018/10/20 20:15

編集2022/01/12 10:55

やりたいこと

Yahooファイナンスさんのサイトから正規表現で株価を取得したいです。ExcelのVBAです。

発生している問題・エラーメッセージ

Set oHttp = CreateObject("MSXML2.ServerXMLHTTP")が上手くいかないのか
下記oHttp.Sendのところで「実行時エラー'-2147012867 サーバーに接続できませんでした」とでてきます。
どなたか解決方法をご存知の方がいらっしゃればご教示お願いできませんでしょうか。
よろしくお願いいたします。

###調べたこと・試したこと
ちなみに次の2つでも試してみましたが動きませんでした。
Set oHttp = CreateObject("Microsoft.XMLHTTP")
Set oHttp = CreateObject("MSXML.XMLHTTP")

該当のソースコード

VBA

Const urlk1 As String = "https://info.finance.yahoo.co.jp/history/?code=4762.T" Sub 取得1() Dim oHttp As Object Dim dthtml As String Dim chktb As String Dim stchk1 As Long Dim stchk2 As Long Dim chksu As Long Dim j As Integer Dim hosei As Integer If msgd = "週間データ" Then hosei = 0 Else hosei = 0 End If **Set oHttp = CreateObject("MSXML2.ServerXMLHTTP")** With CreateObject("VBScript.RegExp") .Pattern = ">([^<>]+)<" .Global = True oHttp.Open "GET", urlk1, False **oHttp.Send** dthtml = oHttp.responsetext On Error Resume Next stchk1 = InStr(1, dthtml, "始値", 1) stchk2 = InStrRev(Left(dthtml, stchk1), "table") chksu = InStr(stchk2, dthtml, "</table", 1) dthtml = Mid$(dthtml, stchk2, chksu - stchk2) itmsu = .Execute(dthtml).Count ReDim hdat(itmsu + 7) With .Execute(dthtml) For j = 1 To itmsu hdat(j + hosei) = .Item(j).SubMatches(0) Next j End With End With Set oHttp = Nothing DoEvents End Sub

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

ukkari-ukachan
ukkari-ukachan

2018/10/21 00:54

これ、oHttp.Open "GET", urlk1, Falseの所でURLになるべき「urlk1」には値が入った状態でこのプロシージャに入ってくるんでしょうか?
haruno_uchida
haruno_uchida

2018/10/21 03:21

Orlofskyさん すみません初めての投稿で。次回より気をつけます。
haruno_uchida
haruno_uchida

2018/10/21 14:07 編集

ukkari-ukachanさん 申し訳ございません。コードが間違っておりました。修正しました。
Orlofsky
Orlofsky

2018/10/21 10:47

ここの掲示板は質問などを修正する機能が提供されています。字下げもしていないコードをきちんと読んでアドバイスをしてくれる奇特な人は少ないです。
TanakaHiroaki
TanakaHiroaki

2018/10/21 13:54

使用環境 Excelのバージョン も記載していただけないでしょうか。こちらのExcel2016では正常に動きます。
haruno_uchida
haruno_uchida

2018/10/21 14:06

ありがとうございます。Excel2016では正常に動くのですね。 こちらの環境はWindows7(64ビット) Excel for Office 365 MSO32ビットです。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

正規表現

正規表現とは特定の文字列によるパターンマッチングを行う際に用いられる宣言型プログラミングです。