株価取得マクロを作ってみた!!
イメージは以下
準備
・SeleniumBasicをインストールする
以下を参考にインストールしました。
※.Net Fremework をインストールするときはほかのサイトを見て参考にしました。
後は適当にVBAを記載する
Sub kabuka()
‘
‘
‘変数:driver でSelenium制御
Dim driver As New Selenium.ChromeDriver
‘ByクラスはSelenium独自搭載のクラス
Dim myBy As New By
‘初期起動時に開くURL
Dim siteURL As String
Dim num1 As Integer
‘ループ用変数
Dim i As Integer
‘Selenium利用時、ウィンドウサイズを最大化で開く初期設定
driver.AddArgument “disable-gpu”
driver.AddArgument “start-maximized”
‘SeleniumでChromeを使用する初期設定
Call driver.Start(“chrome”)
‘Excelに転記する
‘For i = 証券コードが始まるセルの行 To Cells(証券コードが始まるセルの行, “証券コードの列”).End(xlDown).Row
For i = “6” To Cells(“6”, “B”).End(xlDown).Row
‘指定のURLに移動する
siteURL = “https://finance.yahoo.co.jp/quote/”
‘証券コードが数字だったらスクレイピングをする
If IsNumeric(Cells(i, “B”).Value) = True Then
num1 = Cells(i, “B”).Value
Dim inputUrl As String: inputUrl = siteURL & num1 & “.T”
driver.Get (inputUrl)
‘セクター
Range(“C” & i) = driver.FindElementByXPath(“/html/body/div/div[2]/main/div/div/div[1]/div[2]/section[1]/div[2]/div[1]/div[1]/a”).Text
‘銘柄名
Range(“D” & i) = driver.FindElementByXPath(“/html/body/div/div[2]/main/div/div/div[1]/div[2]/section[1]/div[2]/header/div[1]/h1”).Text
‘前日終値
Range(“E” & i) = driver.FindElementByXPath(“/html/body/div/div[2]/main/div/div/div[1]/div[2]/div[1]/section[1]/div/ul/li[1]/dl/dd/span[1]/span/span”).Text
‘配当
Range(“F” & i) = driver.FindElementByXPath(“/html/body/div/div[2]/main/div/div/div[1]/div[2]/div[2]/section[2]/div/ul/li[4]/dl/dd/a/span[1]/span/span”).Text
‘Dim inputUrl2 As String: inputUrl2 = siteURL & num1 & “.T/incentive”
‘driver.Get (inputUrl2)
‘優待
‘Range(“H” & i) = driver.FindElementByXPath(“/html/body/div/div[2]/main/div[1]/div/div[1]/div[2]/section[2]/div/table/tbody/tr[1]/td”).Text
‘Range(“I” & i) = driver.FindElementByXPath(“/html/body/div/div[2]/main/div[1]/div/div[1]/div[2]/section[2]/div/table/tbody/tr[2]/td”).Text
‘Range(“J” & i) = driver.FindElementByXPath(“/html/body/div/div[2]/main/div[1]/div/div[1]/div[2]/section[2]/div/table/tbody/tr[3]/td”).Text
‘Range(“K” & i) = driver.FindElementByXPath(“/html/body/div/div[2]/main/div[1]/div/div[1]/div[2]/section[3]/div/div/table/tbody/tr/td”).Text
Else ‘証券コードが数字以外の場合
‘なにもしない
End If
Next i
End Sub
コメント