ここから本文です

Excel VBAで Javascriptで書かれたWebページを 制御したいと考えています。 以下...

アバター

ID非公開さん

2018/4/1201:40:50

Excel VBAで Javascriptで書かれたWebページを
制御したいと考えています。
以下のような状況で、ページ遷移がうまく動作しません
詳しい方に教えて頂きたいと思います。

どうぞよろしくお願いいたします。
(カテゴリを変えて再質問します)

環境はWindows7、InternetExplorer、Excel2016です。

操作(制御)の流れ
・ポータルとしてのWeb ページを最初に表示する
・次のページで名前を入力して、検索ボタンを押す
・名前をキーにして情報を検索して表示する

詳細
(1)最初のページは、いろいろな情報を表示するポータル。
そのページの一部に名前を入力するフォームがあります。

最初ページのHTML:
<form name="f_name" style="margin: 0ptx;"
action="https://・・・省略・・・"
method="POST" accept-charset="shift_JIS">
<input name="str" type="hidden" value="">
</form>

(2)フォームの入力欄に"名前"を入力する。
入力欄の右端に虫メガネの画像があり、
そこをクリックすると、次のぺージに
ジャンプします。今今確かめられないのですが
Enterキー押し下げでも次ページにジャンプしたはずです。
一般的なボタンはありません。

(2)次のページが表示されると、入力欄には最初のページで
入力した名前が表示されていて、入力欄の右端に「検索」
ボタンがあり、それを押すと、その入力欄のの下に情報が
表示される仕組みになっています。

2番目のページのHTML
<frame name ="・・・XXX・・・"
src="/・・・/・・・YYY・・・EventAction.do?
・・・YYY・・・=Event&amp; searchParam="名前"
frameborder="0">
となっています。

(3)Excel VBAは以下
・・・
Set objIE = CreateObject("InternetExplorer.Application")
・・・
Set doc = objIE.Document
・・・
For Each form In doc.getElementsByName("f_name")
Set txt = doc.ElementsByName("str")(0)
' ★ 名前が 全角日本語の場合、次ページの入力欄は文字化け文字が入る
' 名前が 半角英語の場合、次ページの入力欄には文字化けせず正しい
txt.Value ="名前"
form.submit
exit For
Next
・・・
Set doc = objIE.Document
Do While objIE.Busy = True Or objIE.ReadyState <>READYSTATE_COMPLETE
DoEvents
Loop
・・・
質問

上記の★の所で、全角文字を入れると文字化けしてしまいます
HTMLではaccept-charset="shift_JIS"となっているので日本語でも
大丈夫なはずなのに文字化けしてしまいます。どのように修正すれば
よいかご教示願います

以上

閲覧数:
68
回答数:
1
お礼:
100枚

違反報告

ベストアンサーに選ばれた回答

webnaveさん

2018/4/1208:56:05

<form name="f_name" style="margin: 0ptx;"
action="https://・・・省略・・・"
method="POST" accept-charset="shift_JIS">
<input name="str" type="hidden" value="">
</form>


入録された文字列を"https://・・・省略・・・"へ、文字コード"shift_JIS"で"POST"(送信)

という処理です
----
2番目のページは
"https://・・・省略・・・"で処理された内容の結果
なので、入力時に何かしらの処理が必要というわけではない

実際のサイトを提示しないとそれ以上のことは判断しかねるが
そのサイトの作りの問題と思われます

  • webnaveさん

    2018/4/1209:04:42

    >HTMLではaccept-charset="shift_JIS"となっているので日本語でも
    大丈夫なはず

    その判断は誤りです

    "https://・・・省略・・・" での処理内容によって送信する文字コードを選択する必要がある

    省略されたサイトでの文字コードが"UTF-8"であれば"shift_JIS"で"POST"すれば当然文字化けは発生する

  • その他の返信(2件)を表示

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

この回答は投票によってベストアンサーに選ばれました!

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる