VBAでUTF-8のデータを取得してみた

2011年11月11日金曜日

tips vba

t f B! P L
VBAでバイナリデータとか、UTF8のデータとか便利に取れる関数がなかったので調べて作ってみた。
Stringの変数にhttpのレスポンスを格納すると文字化けしてしまったり、バイナリを取得してみるとうまく保存できていなかったりした場合の回避方法。


Private Declare Function URLDownloadToFile Lib "urlmon" Alias _
"URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, ByVal _
szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long

Sub getData(ByVal sUrl As String, ByVal sFilePath as String)
  getData = URLDownloadToFile(0, sUrl, sFilePath, 0, 0)
End Sub

sUrl:リクエスト先のURL
sFilePath:ファイルの保存先。フルパスで記載する。


以下、めも。
・StringやVariant型の変数にUnicode以外のデータをセットすると、文字化けしてしまう。
→文字化けであれば、文字列型関数を使ってコードを書き換えることで直せるらしいが、未検証。
バイナリはどうすればいいかよくわからない。

QooQ