【Excel】【VBA】内閣府のHPから祝日情報をダウンロードしてExcel出力

仕事で、祝日を取得する必要があったのでちょっとツールを作成

参照設定

Microsoft XML を参照設定する。

VBAのコード

XMLHTTPオブジェクトの機能で、内閣府のHPから祝日情報(CSVファイル)をダウンロードする。

ダウンロードしたファイルを、Excelシートに出力させる。

Sub 内閣府のHPから祝日情報をダウンロードしてExcel出力()

    '参照設定:
    Dim httpReq As XMLHTTP60
    Set httpReq = New XMLHTTP60
    Dim httpDoc As DOMDocument60
    
    
    httpReq.Open "GET", "https://www8.cao.go.jp/chosei/shukujitsu/syukujitsu.csv"
    httpReq.send
    
    Do While httpReq.readyState < 4
        DoEvents
    Loop
    
    If httpReq.status = 200 Then
            Debug.Print StrConv(httpReq.responseBody, vbUnicode)
            Call writeExcel(StrConv(httpReq.responseBody, vbUnicode))
           
        Else
           Debug.Print "HTTP StatusCode:" & httpReq.status & ", HTTP StatusText:" & httpReq.statusText
        End If
    
    
    Set httpReq = Nothing

End Sub

Sub writeExcel(ByVal responseBody As String)
    
    Dim CSVRec() As String
    Dim v() As String
    
    Dim i As Long, j As Long
    CSVRec = Split(responseBody, vbCrLf)
 
    For i = 0 To UBound(CSVRec)
        Debug.Print CSVRec(i)
        v = Split(CSVRec(i), ",")
        For j = 0 To UBound(v)
            ActiveSheet.Cells(i + 1, j + 1) = v(j)
        Next j
    Next i
    

End Sub

 httpReq.Open "GET", "https://www8.cao.go.jp/chosei/shukujitsu/syukujitsu.csv"

このURLを変更すれば、内閣府に限らず別のアップロード済みCSVファイルを取得しExcelシートに出力できる。

ライセンス:本記事のテキスト/コードは特記なき限り CC BY 4.0 です。引用の際は出典URL(本ページ)を明記してください。
利用ポリシー もご参照ください。

コメント

タイトルとURLをコピーしました