アプリ版:「スタンプのみでお礼する」機能のリリースについて

VBAからIE操作 .document.forms(0).Submit でフォーム送信処理

フォーム内にある登録ボタンを「objIE.Document.forms(0).Submit」で動作してみると、
ボタンは押されているみたいなのですが、同じページが開かれるだけで、登録されません。
なぜでしょうか?宜しくお願い致します。

以下はボタンのソースです。(他に必要なソースがあったら言ってください)

<div><button class="button" onclick="var
f=this.form;f.action='/business/entry_menu/entrance/create';;f.submit();this.disabled=true;">登録</button>

A 回答 (3件)

No2です。


VBAで、HTMLの操作をしたことがありませんので正しい方法はわかりませんが、適当に作成してみたところ、簡単な環境では一応動作するみたい。
(正しい記述方法かどうかは検証していません。)

>ボタンを押したことにする場合、ボタンに名前が付いていないので~
HTMLのソースを修正することはできないということでしょうか?
現状のままのソースに対応しなければならないのでしょうか? formの構成が不明なので、ちゃんと特定するのが難しいかも。アクションを設定するほうが簡単そうですね。

というわけで、まずはアクションを設定する方法
 objIE.Document.forms(0).Action = "/business/entry_menu/entrance/create"
 objIE.Document.forms(0).Submit

ボタンを押す方法はボタンの特定にちょっと問題がありますが、とりあえずボタンタグでclassがbuttunという条件を満たすものが一つしかないと仮定できれば…
 dim e as object
 Set e =objIE.Document.forms(0).elements
 For i = 0 To e.Length - 1
  If e(i).nodeName = "BUTTON" And e(i).className = "button" Then e(i).Click
 Next i
みたいな感じ。
    • good
    • 0
この回答へのお礼

無事解決しました。

ありがとうございました!!\(^ ^)/

お礼日時:2009/04/10 23:37

ご提示のHTMLソースだと、ボタンを押した時に、javascriptで以下の処理がなされています。


 1)当該フォームのアクションのURLを設定(または変更?)
 2)フォームをサブミット
 3)登録ボタンを無効化する

VBAでいきなりsubmitすると、↑のアクションの設定がなされませんが、もとのHTMLソース(タグ内)にアクションが設定されているのでしょうか?
されていないために、何もおきないのでは?

ブラウザ上から登録ボタンを押すのと同様にしたいのなら、ボタンを押したことにするか、↑と同様にアクションを設定してからサブミットするかのどちらかでいけるのでは?

この回答への補足

>ブラウザ上から登録ボタンを押すのと同様にしたいのなら、ボタンを押したことにするか、↑と同様にアクションを設定してからサブミットするかのどちらかでいけるのでは?

ボタンを押したことにする場合、ボタンに名前が付いていないので、問う記述していいのかがわかりませんでした。

また、アクションを設定してからサブミットする方法もわかりません。

どちらでも良いので教えていただけませんか?

補足日時:2009/04/10 15:46
    • good
    • 0

ボタンのIDやnameはないのですか?



button のtypeがsubmitでないので

document.forms(0).Submit でフォーム送信処理
でこのボタンは押されません。

この回答への補足

ソースを調べてみたのですが、IDやnameはありませんでした。
この場合、どうしたらいいのでしょうか?

補足日時:2009/04/10 17:56
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!