うまく解決した問題 ( WinHTTP が特定の HTTPS リソースを認証しない理由がわからない) の次のステップとして、取得した CSV をきれいに解析する必要があります。現時点では、次のソリューションを使用しています。
If HTTPReq.Status = 200 Then
If FSO.FileExists(CSV_Path) = True Then FSO.DeleteFile (CSV_Path)
Set FileStream = CreateObject("ADODB.Stream")
FileStream.Open
FileStream.Type = 1
FileStream.Write HTTPReq.responseBody
FileStream.SaveToFile (CSV_Path)
FileStream.Close
ActiveWorkbook.Connections("Redmine Timelog").Refresh
ActiveSheet.PivotTables("PivotTable_RM").PivotCache.Refresh
End If
つまり、CSV をディスクに保存し、それをデータ ソースとして Excel にリンクします。ただし、追加のファイルを作成する必要がなく、Excel ブックを自給自足したいと考えています (いくつかの非常に明白な理由により)。
私の場合、解決策は非常に簡単です。WinHTTP.responseText
現在保存されているリンクされた CSV ではなく、別の Excel シートに行ごとに保存してから、Text to Data
Excel 変換を使用します。ただし、次の差し迫った問題に直面しています。
- CSV は UTF-8 でエンコードされていますが、生の WinHTTP 応答テキストはそうではないようです。目的のエンコーディングを使用して解釈する方法はありますか?
- CSVを行に分割する方法は? 関数を使用
Split
しますか?CSV は標準の NewLine 文字を使用しているようで、99% のデータにはこれらのいずれも含まれていないはずです。
解決された同様の問題はたくさんありますが、これまでのところVBAで明確で受け入れられるものは何も見つかりませんでしたので、助けていただければ幸いです。前もって感謝します!