
お世話になります。
VBAで、MSXML2.XMLHTTPオブジェクトを利用して、httpリクエストを送り、価を取得しています。英数字はいいのですが、responsetextメソッドを利用しても、日本語は\u682a\u5f0fのように文字化けしてしまいます。(ちなみにUTF-8で戻ってくると仕様書にはありました)
文字変換にADODB.Streamを利用すればいいのかと思って利用して、さまざまな文字コードで試しましたが駄目でした。
どなたかどうしたら正しい日本語になるのかご教示いただければ大変助かります。
その他、VBAを利用して、Httpリクエストを送り、あたいを取得する良い方法がありましたら、教えていただければ大変助かります。
どうぞよろしくお願いいたします。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
駄目かもしれませんが、そうでしょうか。
Sub sample()
Dim url As String
Dim http As Object
Dim st As Object
Dim cs As String
Dim txt As String
'
url = "http://localhost/test.html" '目的のurl
Set http = CreateObject("MSXML2.XMLHTTP")
http.Open "GET", url, False
http.Send
Set st = CreateObject("ADODB.Stream")
st.Open
st.Type = 1 'adTypeBinary
st.Write http.responseBody
st.Position = 0
st.Type = 2 'adTypeText
cs = Split(Split(http.responsetext & "charset=""", "charset=""")(1), """")(0)
If cs = "" Then cs = "utf-8"
st.Charset = IIf(cs = "", "utf-8", cs)
txt = st.readText
st.Close
MsgBox txt
End Sub
文字化けする場合は
>st.Charset = IIf(cs = "", "utf-8", cs)
を
st.Charset = "sjis"
で試してみてください。
ご教授ありがとうございました。
WEBページの場合はそのように取得するんですね。
今回はWebAPIだったのでご指摘のタグはありませんでした。
でもVBAのchrw()関数を利用して無事に変換できました。
No.1
- 回答日時:
回答が付かないようなので、使った事は無いですが検索してみました。
ここは参考になりますか?https://detail.chiebukuro.yahoo.co.jp/qa/questio …
https://accountingse.net/2010/09/212/
windows10ではMSXML2.XMLHTTPオブジェクト使えなくなったようです。
>その他、VBAを利用して、Httpリクエストを送り、あたいを取得する良い方法がありましたら、教えていただければ大変助かります。
良いかどうかは、解りませんがよく聞くのは、IEなどブラウザを操作して、ソースのタグなどを参照して内容を抽出するものですかね。
HTMLの知識が必要になりますが。(私はこのやり方です)
ご教授ありがとうございました。
WEBページの場合はそのように取得するんですね。
今回はWebAPIだったのでご指摘のタグはありませんでした。
でもVBAのchrw()関数を利用して無事に変換できました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) EXCEL VBA 単語置き換え について質問です ブック名 ぶぶぶ シート名 ししし セル V3〜 3 2023/03/08 01:41
- Excel(エクセル) マクロでボタンにつける名前がどこに設定されているかわからないケースがありました。 1 2023/06/19 19:37
- 大学受験 立教大学の受験科目 日本史or政経 2 2022/08/10 21:18
- その他(メールソフト・メールサービス) メールソフトを教えてください 1 2023/03/28 23:32
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
- 婚活 マッチングアプリでいいねを送って来た女性のプロフィールが、本当かどうか怪しい お世話になります。 マ 4 2022/07/15 13:14
- UNIX・Linux テキストファイルをページ番号付きでコマンドラインから印刷したい 1 2023/02/22 12:47
- 労働相談 合意済み仕様の商品納入後における仕様変更要求への対応について 5 2023/04/19 09:41
- Excel(エクセル) Excelで校閲をする方法はあるでしょうか(取扱説明書への掲載禁止用語の確認) 3 2022/06/11 22:51
- その他(IT・Webサービス) [PayPay銀行キャッシュカード拾得の件] このメールは本物か? 6 2022/09/15 21:52
このQ&Aを見た人はこんなQ&Aも見ています
-
AccessVBAで、ホームページの内容を取得すると文字化けする
Visual Basic(VBA)
-
VBAでEUC-JPのHTMLソースを取得しShift-JISにしたい
PowerPoint(パワーポイント)
-
VBAでHTTPログイン
Visual Basic(VBA)
-
-
4
ExcelVBAにてアプリをタスクマネージャーから強制終了させたいのですが
Visual Basic(VBA)
-
5
エクセルのVBAでクリップボードにコピーした画像をpng(or jpg or bmp)保存したい
Visual Basic(VBA)
-
6
文字化けについて
Visual Basic(VBA)
-
7
VBAでActiveDirectoryのユーザ一覧の取得の仕方
Visual Basic(VBA)
-
8
お助けください!VBAのファイル名エラーについて
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel VBAでマウスの左クリック...
-
Accessのフォーム上にエクセル...
-
コードでオブジェクトを最前面に
-
EXCEL VBA ユーザフォームで複...
-
VBA エンターキーでイベントに...
-
ExcelのシートをAccessで表示し...
-
【エクセルのマクロ】クリップ...
-
文字列で小数点以下の0を削除し...
-
日本語の文字化けを直す方法
-
txtNo,txtDate等の意味
-
Webbrowserで完全にHPを表示さ...
-
ACCESSマクロ、Me![氏名] その...
-
VB6にて文字型変数の内容をオブ...
-
アクセスVBAのMe!と[ ]
-
Imageコントロールにグラフを表...
-
「ご処理進めて頂きますようお...
-
VBAでループ内で使う変数名を可...
-
エクセルで、日付を入力すると...
-
エクセルVBAで、MsgBox やInput...
-
Excelシート上のマクロを登録し...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA エンターキーでイベントに...
-
アクセスVBAのMe!と[ ]
-
エクセルVBAでセル番地を指定し...
-
【エクセルのマクロ】クリップ...
-
文字列で小数点以下の0を削除し...
-
Excel VBAでマウスの左クリック...
-
Excel2007 でのチェックボック...
-
Accessのフォーム上にエクセル...
-
現在アクティブになっているオ...
-
【エクセル】複数のTextBoxに共...
-
日本語の文字化けを直す方法
-
PowerpointVBAで指定のShapeオ...
-
VBでExcelの表形式の様なデザイ...
-
サブルーチンにオブジェクト名...
-
ユーザーフォームのインポート...
-
コードでオブジェクトを最前面に
-
GDIオブジェクトが増える……
-
エクセルのデータをwebフォーム...
-
ChexBox1等の「1」を変数にで...
-
Access からオブジェクトとして...
おすすめ情報