• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:AccessVBAで、ホームページの内容を取得すると文字化けする)

AccessVBAでホームページの内容を取得する際の文字化け問題

このQ&Aのポイント
  • AccessVBAを使用してホームページの内容を取得する際に、日本語部分が文字化けしてしまう問題が発生しました。
  • VBAソースを実行すると、取得したサイトのHTMLがBuf変数に格納されますが、その際に日本語部分が文字化けしてしまいます。
  • この文字化け問題を回避する方法をご教示いただきたいです。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

Buf = Http.ResponseText で文字化けしないと思う。 #ただ理由は理解していない(^^;; #Msgbox(Buf)すれば文字化けしていないことが確認できるかと #識者待ち

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • URLからタイトルを取得したい!

    エクセルのA列にはURLがずらっとあり、B列にタイトル取得を考えています。 そこで、他の質問者さんのコードを試しました。 その結果、普通のサイトでは問題なく取得できたのですが、 アメーバーブログなどの無料ブログでは、途中で止まってエラーとなってしまうようです。 どこかいけないのでしょうか? Public Sub ReadTitle() Dim url As Range Dim Http, buf As String Set Http = CreateObject("MSXML2.XMLHTTP") Set url = Range("A1") Do While (url.Value <> "") Http.Open "GET", url.Value, False Http.Send buf = StrConv(Http.ResponseBody, vbUnicode) 'msgbox buf url.Offset(0, 1).Value = getTitle(buf) Set url = url.Offset(1, 0) Loop Set Http = Nothing End Sub Private Function getTitle(buf As String) As String Dim pos1 As Long, pos2 As Long pos1 = InStr(1, buf, "<title>") If pos1 = 0 Then pos1 = InStr(1, buf, "<TITLE>") If pos1 = 0 Then getTitle = "" Exit Function Else pos2 = InStr(pos1 + 7, buf, "</TITLE>") End If Else pos2 = InStr(pos1 + 7, buf, "</title>") End If getTitle = Mid(buf, pos1 + 7, pos2 - pos1 - 7) End Function

  • エクセルでURLからタイトルのみを抽出する方法

    URLからタイトルを抽出するマクロについて教えて下さい。 忍者ブログの記事タイトルをURLから抽出しようとしたのですが 文字化けしてしまい全く分かりません。 他のサイトやブログだと普通に抽出出来るのですが・・・ 文字コード?か何かだと思うのですが、原因が分かりません。 ちなみに以下のマクロは、ネット上で検索して見つけたものを そのままコピーして使用しています。 ------------------------------- Public Sub ReadTitle() Dim url As Range Dim Http, buf As String Set Http = CreateObject("MSXML2.XMLHTTP") Set url = Range("A3") Do While (url.Value <> "") Http.Open "GET", url.Value, False Http.Send buf = StrConv(Http.ResponseBody, vbUnicode) 'msgbox buf url.Offset(0, 1).Value = getTitle(buf) Set url = url.Offset(1, 0) Loop Set Http = Nothing End Sub Private Function getTitle(buf As String) As String Dim pos1 As Long, pos2 As Long pos1 = InStr(1, buf, "<title>") If pos1 = 0 Then pos1 = InStr(1, buf, "<TITLE>") If pos1 = 0 Then getTitle = "" Exit Function Else pos2 = InStr(pos1 + 7, buf, "</TITLE>") End If Else pos2 = InStr(pos1 + 7, buf, "</title>") End If getTitle = Mid(buf, pos1 + 7, pos2 - pos1 - 7) End Function ------------------------------ 宜しくお願い致します。

  • 文字化けについて

    アクセスのテーブルをTransferTextでエクスポートし、 そのソースの中身のタグをVBAで置換したいのですが Sub test1() Dim objIE As Object Dim myStr As String Dim t As String t = "Table" DoCmd.TransferText acExportHTML, , t, MyDesktop & "\" & t & ".html", True Set objIE = CreateObject("MSXML2.XMLHTTP") objIE.Open "GET", MyDesktop & "\" & t & ".html", False objIE.send myStr = objIE.responseText myStr = Replace(myStr, "<TD DIR=LTR ALIGN=RIGHT>", "<TD>") Debug.Print myStr Set objIE = Nothing End Sub これだと、日本語部分が?になってしまいます。 なので、 myStr = objIE.responseText を myStr = StrConv(objIE.responseText, 64) に変更したら、余分なスペースが入り、結局文字化けしたままです。 http://www2s.biglobe.ne.jp/iryo/vba/IE/http1.html を参考にしたのですが、日本語を含むソースの場合はどうすればいいでしょうか?

  • エクセルでメタタグを抽出するには?

    すいません、前回質問した者です。 前回の質問では・・・ エクセルシートのB列にURLが並んでいるとして、VBAを使って、C列には「description」D列には「keywords」を抽出したいという質問をしたのですが、参考になる回答がなかったのでもう一度質問します。 以前、私が教えてもらったのは、B列にURLが並んでいて、A列にタイトルを抽出させたものでした。 それが以下になります。 Public Sub ReadTitle() Dim url As Range Dim Http, buf As String Set Http = CreateObject("MSXML2.XMLHTTP") Set url = Range("B1") Do While (url.Value <> "") Http.Open "GET", url.Value, False Http.Send buf = StrConv(Http.ResponseBody, vbUnicode) 'msgbox buf url.Offset(0, -1).Value = getTitle(buf) Set url = url.Offset(1, 0) Loop Set Http = Nothing End Sub Private Function getTitle(buf As String) As String Dim pos1 As Long, pos2 As Long pos1 = InStr(1, buf, "<title>") If pos1 = 0 Then pos1 = InStr(1, buf, "<TITLE>") If pos1 = 0 Then getTitle = "" Exit Function Else pos2 = InStr(pos1 + 7, buf, "</TITLE>") End If Else pos2 = InStr(pos1 + 7, buf, "</title>") End If getTitle = Mid(buf, pos1 + 7, pos2 - pos1 - 7) End Function このような感じでB列にはURLの一覧があるとして、A列にタイトル、C列にdescription D列にkeywordsが抽出できればいいなと考えています。 ちなみに、私にはVBAの知識がまったくありません。とりあず、これだけ出来れば、すごく助かるのですが、どなたか教えていただけないでしょうか?  よろしくお願いします!

  • GETクエリの文字化けについて

    GETクエリの文字化けについて http://msdn.microsoft.com/ja-jp/library/attbb8f5(v=VS.80).aspx に記されているサンプルコードを実行してHTTPサーバからファイルを受信したところ,日本語が?に文字化けしてしてしまっていました. なおコマンドプロンプトからtelnetを実行して同様にGETメソッドによりファイルを受信したところ,こちらは文字化けが起こりませんでした. 上記のプログラムで日本語が文字化けする理由として何が考えられるのでしょうか?

  • VBAでEUC-JPのHTMLソースを取得しShift-JISにしたい

    こんにちは。 現在 1.Msxmlで任意のHTMLソースを取得 (ただこれがEUCで、エクセル上だと文字化けする) 2.それをShift-JISにエンコードして、のちのちExcel表にする) というコードをExcelVBAで描いています。 ソースの取得はできるのですが、 EUCのサイトのため漢字が文字化けします。 エンコードしようと思ってもできません。 ADODB.Streamというものを使おうとしています。 宜しくお願い致します。 Dim xmlHttp Set xmlHttp = CreateObject("Msxml2.XMLHTTP") xmlHttp.Open "GET", url, False xmlHttp.send Set in_strm = CreateObject("ADODB.Stream") Set out_strm = CreateObject("ADODB.Stream") in_strm.Charset = "EUC-JP" in_strm.Type = adTypeText out_strm.Charset = "Shift_JIS" out_strm.Type = adTypeText in_strm.Open out_strm.Open m_byte1 = xmlHttp.responseText in_strm.WriteText m_byte1 in_strm.Position = 0 in_strm.CopyTo out_strm out_strm.Position = 0 m_string2 = out_strm.ReadText(adReadAll) MsgBox m_string2 'ここで正しいものが表示される予定・・・ in_strm.Close out_strm.Close Set in_strm = Nothing Set out_strm = Nothing

  • StrConvでUnicodeに変換出来ない文字

    エクセルのVBAで、StrConv関数を使用して、文字列をUnicodeに変換しようとしているのですが、特定の文字が変換できません。 解決方法をご存知の方は教えてください。 現象:StrConv("マミムメモ",vbUnicode)で変換すると、ムメモが文字化けしてしまう。 確認方法: MsgBox StrConv(StrConv(InputBox("入力"), vbUnicode), vbFromUnicode) で、InputBoxに"マミムメモ"を入力すると、メッセージボックスに"マミ???"と表示されてしまう。

  • html safariでの文字化け

    この度、素人なりに頑張って自分のHPを作りました。 ソフトはDreamweaverで、FTPで転送しています。 自分のPCはwindows7で、IExplorerからHPを見た時は、どこも問題なく、きれいに並んでいました。 しかし、スマホの、iphoneから自分のサイトをチェックしたら日本語部分が全部文字化けしてました。 あれ、?と思って、色々検索をかけて、素人の判断でDreamweaverの 修正、ページプロパティ、エンコード欄の変更(UTF-8から日本語JIS への変更)をしたら、今度はDW内でも完全文字化けになり、 F12を押してIEで見てみようとしたら勝手に保存、そして勝手にアップロードされてしまい、 DW内で文字化けしていたものは、IEで見てみても同じく文字化けしてました>_< あーと思って、ファイルのバックアップはないか、と探してみましたが無く、 とうとうファイル自体が破損してしまったようです>_< これはもうあきらめて また日本語部分は直接入力、修正していくしかないと思うのですが、 完全文字化けしたあと、やっぱりUTF-8で正しいんじゃないか?と思って 日本語JISからUTF-8に戻しました。(もう文字化けしたところは戻せませんでしたが…泣) 設定も全部見直しました。 文字エンコードは、UTF-8で統一できてるはずなのですが、 どうしてIEではキレイに反映されて、safariだと反映されないのでしょうか>_< headの後に、この記載もしております <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> エンコードもUTF-8で揃っております。 スマホでも見れるようにしたいのですが、 もし文字化けしないような手順がありましたら教えて頂けませんでしょうか>_< ほとんどのサイトはスマホで文字化けしないのに、 自分のサイトは文字化けする、というのは、何か設定手順が違うのですよね? 同じく、自分のサイトがサファリで文字化け、という方の質問投稿がありましたが、 そちらを見て、色々試しましたが解決に至りませんでした。 もし、何かアドバイスいただけますと、嬉しいです、よろしくお願い致します>_<

  • ホームページの文字化け

    ブラウザとしてMicrosoft Edgeを用いて自分で作成したホームページを今まで日本語でトラブルなしに見れたのですが、ホームページの他のサブディレクトリをいじったためか日本語が文字化けして読めなくなってしまいました(英語の部分は文字化けしていません)。Internet Explorerモードで再読込しても多少変化しますが文字化けは解消しません。どのようにしたらMicrosoft Edgeを用いて文字化けなしに以前のように見れるようになるのでしょうか? それと関連するのか分かりませんが、ホームページのアイコンの整列がパソコンを立ち上げる度に変わるようになってしまいました。この点も解決する方法を教えて頂ければ幸いです。どうぞ宜しくお願い致します。

  • 文字化け

    文字化けに困っています。 もちろん日本語のサイトです。 どうすれば直りますか?