' Excel for Windows. Needs VBA-JSON 2.3.1: import its JsonConverter.bas ' and tick Tools > References > Microsoft Scripting Runtime Sub FundHoldings() ' Read VOO's file (one GET, no key), naming your own project Dim http As Object ' ServerXMLHTTP does not read the proxy set in Windows: behind a ' company proxy, create MSXML2.XMLHTTP.6.0 instead Set http = CreateObject("MSXML2.ServerXMLHTTP.6.0") http.Open "GET", "https://tickerinside.com/api/v1/fund/voo.json", False http.setRequestHeader "User-Agent", "MyProject/1.0 (+https://example.com)" http.send If http.Status <> 200 Then Err.Raise 513, , "HTTP " & http.Status Dim fund As Object Set fund = JsonConverter.ParseJson(http.responseText) ' A new sheet: the date of the issuer's file and the line to cite on top Dim ws As Worksheet Set ws = Worksheets.Add ws.Range("A1").Value = "VOO holdings_as_of" ws.Range("B1").Value = fund("holdings_as_of") ws.Range("A2").Value = fund("cite_as") ' holdings maps each ticker to its weight in percent: one row each Dim t As Variant, r As Long ws.Columns(1).NumberFormat = "@" ws.Range("A4:B4").Value = Array("ticker", "weight_pct") r = 5 For Each t In fund("holdings").Keys ws.Cells(r, 1).Value = t ws.Cells(r, 2).Value = fund("holdings")(t) r = r + 1 Next t ' Largest first, sorted by Excel itself ws.Range("A4:B" & r - 1).Sort Key1:=ws.Range("B4"), _ Order1:=xlDescending, Header:=xlYes End Sub