人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

エクセルマクロ中級者です。
エクセルのVBAマクロでIE上のJavascriptをコントロールしたいと考えています。
具体的には、添付ファイルのページ内のJavascriptで動作している表示エリア(為替取引の画面で、買いと売りの2つの表示エリアにそれぞれ変動する為替レートが表示されています。)をクリックする、という動作を行いたいと思っています。
サイトのソースは以下のとおりです。
---------------------------------------
(…中略…以下、フォーム情報部分)
<FORM name=NewStreamingOrderForm action=/fxcwebpresen/ExecuteNewStreamingOrder.do method=post>
<INPUT type=hidden value=doOrder name=actionMethod>
<INPUT type=hidden name=buySellType>
<INPUT type=hidden name=orderPrice>
<INPUT type=hidden name=priceId>
(…中略…以下、Javascript動作部分)
<SCRIPT src="/fxcwebpresen/StreamingApplet.do"></SCRIPT>
<OBJECT height=80 width=300 classid=clsid:8AD9C840-044E-11D1-B3E9-00805F499D93 name=FxCStreamingApplet jinstall-1_4-windows-i586.cab#Version="1,4,0,0" autodl plugin products java.sun.com https:>
<PARAM NAME="_cx" VALUE="7938">
<PARAM NAME="_cy" VALUE="2117">
</OBJECT>(以下略)
---------------------------------------
ソースを元に上記動作を行うマクロの記述を、最も的確に早くご回答頂いた方に500ポイント差し上げます。

1208371274
●拡大する

●質問者: junrou
●カテゴリ:コンピュータ インターネット
✍キーワード:JavaScript エクセル エリア クリック コントロール
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● ardarim
●35ポイント

まずExcelからIEを起動し、IEオブジェクトを管理できる状態にあることが前提ですが、

Call objIE.document.getElementsByName("NewStreamingOrderForm").Item(0).submit

でできると思います。

該当ページでテストできないので確実なことはいえないですが、質問のソースですとフォームはPOSTされるだけで何かスクリプトで処理されているようには見えないので、単純にsubmitするだけで良いはずです。


ExcelからIEを起動するのは

Set objIE = CreateObject("InternetExplorer.Application")
 
objIE.Visible = True
objIE.navigate "http://q.hatena.ne.jp/1208371274"

のような感じで行って必要なページに事前に遷移されていることが前提です。

◎質問者からの返答

ご回答ありがとうございます。

Javascript表示部分には「Bid売」と「Ask買」があり、赤色と青色の2つの四角があると思うのですが、クリックする部分によって、注文の種類が認識され、かつその時に表示されている為替レートで約定されます。

たとえば、「Bid売」(画像では101.72のレート)で約定したい場場合、青色の部分をクリックすると「売り」と「101.72」という情報が次の画面に引き継がれるのですが、この動きはどのように記述するのでしょうか?


2 ● ardarim
●35ポイント

質問に記載のソースコードは全体のごく一部のため、画面表示のどの部分のソースなのかが特定できないため、これ以上詳しい説明は難しいです。

Javascript表示部分というのはどこのことを指しているのでしょうか? レートがリアルタイムで(例えば数秒間隔とかで)表示更新されているという意味でしょうか。


質問のソース部分には、フォームをsubmitする処理(ボタンなど)が見当たりませんが、おそらくsubmit時の処理でレートなどの情報をフォームパラメータにセットして、フォームをPOSTしていると思います。その結果、次の画面にフォームパラメータが引き継がれます。

具体的な処理はその部分のスクリプトを見てみないとなんとも言えませんが、同じ処理をすれば問題はないはずです。


コメント欄を開けていただけると、より詳しいやり取りができると思いますので、コメント欄をオープンにしていただけませんか?

◎質問者からの返答

ardarim様、お返事ありがとうございます。

はてな初心者のため、コメント欄についてよく理解していませんが、「コメント・トラックバック表示」をオンにしました。これでよろしいでしょうか?

>Javascript表示部分というのはどこのことを指しているのでしょうか? レートがリアルタイムで(例えば数秒間隔とかで)表示更新されているという意味でしょうか。

添付画像の、101.72、101.と書かれている左中央の青色の四角と赤色の四角の部分になります。ほぼリアルタイムで、この部分の為替レートが変動しており、自分が約定したいと思うレートのタイミングでマウスを当て、クリックするとそのレートで約定画面に遷移します。

ページ全体のソースをお示ししたほうがよろしいでしょうか?

どうぞ宜しくお願いいたします。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ