SpectrumLive という株式取引 Web サイトへの VBA インターフェイスを Excel で作成しようとしています。
サイトの関連フォームに購入する株式数を入力できます。ただし、[注文する] ボタンをクリックすると、VBA によって入力された値ではなく、最後に手動で入力した値が記憶されます。サーバー側に値を登録させるには、イベントなどを発生させる必要があるようなものです。
フィールドは、編集可能なテキスト フィールドを持つコンボボックスのように見えます。コンボボックス コントロールの小さな矢印を選択すると、事前定義された値を実際に選択できます。ただし、スクリプトは値をテキスト フィールドに直接入力します (手動でも同様にできます)。
私はかなり長い間その特定の問題に取り組んできましたが、アイデアが尽きてしまいました。
私が使用するVBAは次のとおりです。
theDocument.getElementsByName("ordertype").Item(i).value = "88"
取引する株式数を 88 に設定します。
次の方法で OnChange イベントを発生させようとしました。
theDocument.getElementsByName("ordertype").Item(i).FireEvent ("onchange")
しかし運がない。
ページの特定の部分の HTML コードは次のようになります。
<div id="MenuMgr_WM_view4_widgetbfcca409xc930x42d5x8d00x04a83ed68e5f_ordertab_amountrow" class="formrow">
<div id="MenuMgr_WM_view4_widgetbfcca409xc930x42d5x8d00x04a83ed68e5f_ordertab_amountrow_error" class="error_field">
<span class="inline amount">
<label class="label" title="Quantity">Quantity:</label>
<div class="amount_type input selector" style="display:none;" name="MenuMgr$WM_view4$widgetbfcca409xc930x42d5x8d00x04a83ed68e5f$ordertab$amountrow$ctl00">
<span id="MenuMgr_WM_view4_widgetbfcca409xc930x42d5x8d00x04a83ed68e5f_ordertab_amountrow_amount" name="MenuMgr$WM_view4$widgetbfcca409xc930x42d5x8d00x04a83ed68e5f$ordertab$amountrow$amount">
<div id="AmountSelectorContainer">
<span id="MenuMgr_WM_view4_widgetbfcca409xc930x42d5x8d00x04a83ed68e5f_ordertab_amountrow_amount_AmountSelectorControl" name="MenuMgr$WM_view4$widgetbfcca409xc930x42d5x8d00x04a83ed68e5f$ordertab$amountrow$amount$AmountSelectorControl">
<div id="AmountSelectorDropDownList" class="left input selector" name="MenuMgr$WM_view4$widgetbfcca409xc930x42d5x8d00x04a83ed68e5f$ordertab$amountrow$amount$AmountSelectorControl$AmountSelectorDropDownList">
**<input class="inp aright" type="text" value="" name="ordertype" title="">**
<div class="btns">
</div>
</span>
</div>
</span>
</span>
<div class="formrow amount_info" style="display: none;"> </div>
上記の「ordertype」という名前のフィールドの「値」は「」ですが、SpectrumLive は数量として 88 を表示します (どのフィールドがコンボボックスのテキスト フィールドを表しているかを Firebug が教えてくれました)。
これについての助けは大歓迎です!
ありがとう、