• ベストアンサー
  • すぐに回答を!

エクセル マクロ submitについて

  • 質問No.8577480
  • 閲覧数363
  • ありがとう数10
  • 回答数1

お礼率 100% (2/2)

マクロ超初心者です・・・

エクセルマクロでIEを操作したいのです。


****エクセルのセルA1が「OK」の場合、以下の処理を実行****

処理1.セルB1に数値として表示済みのURLを取得してIEを開く。
処理2.開いたIEのtextareaにセルC1の文字を入力。
処理3.submitボタンを押して送信。



****HTMLは以下の通り(一部省略)****

.1..<form name="directForm" enctype="multipart/form-data" method="post" action="/thr_rp1/">
.2....<input type="hidden" value="120" name="bid">
.3....<input type="hidden" value="3217234" name="tid">
.4....<input type="hidden" value="103" name="ctgid">
.5....<input type="hidden" value="8" name="acode">
.6....<input type="hidden" value="1" name="tp">
.7....<input type="hidden" value="2" name="prof_flg">
.8......<ul class="display inqForm rCate">
.9........<li>
10..........<input id="name" type="text" tabindex="1" maxlength="16" onclick="fun_focus(this)" size="16" value="" name="name">
11........</li>
12........<li>
13..........<input id="trip" type="text" tabindex="2" maxlength="16" onclick="fun_focus(this)" size="16" value="" name="trip_pass">
14........</li>
15........<li>
16..........<input id="email" type="email" tabindex="3" maxlength="50" onclick="fun_focus(this)" size="30" value="" name="mailaddr">
17........</li>
18........<li>
19..........<textarea class="required" required="" tabindex="-1" onkeyup="showCharCnt('resize-demo', 'idCharCnt')" onclick="fun_focus(this)"></textarea>
20..........<textarea id="resize-demo" class="required" required="" tabindex="4" onkeyup="showCharCnt('resize-demo', 'idCharCnt')" onclick="fun_focus(this)" name="body"></textarea>
21........</li>
22........<li>
23..........<input id="delpaass" type="password" tabindex="5" value="" name="del_pass">
24........</li>
25........<li class="noborder">
26..........<div class="center">
27............<input type="submit" tabindex="6" value="送信する">
28..........</div>
29........</li>
30....</ul>
31..</form>

****//HTML(終)****



上記のHTMLにもありますように、20行目のtextarea「name="body"」に処理2を実行後、
27行目の「value="送信する"」を押すというマクロを作成したいのです。

いろいろなサイトを参考にさせていただいて、切り貼りをした結果、
次のようなマクロを書きました。



****マクロ****

Sub test()
If Range("A1").Value = "OK" Then
Dim IE As Object
Set IE = CreateObject("InternetExplorer.Application")
IE.Visible = True
IE.Navigate Range("B1").Value '画面へ移動する
waitNavigation IE

IE.document.All("body").Value = Range("C1").Value
ObjIE.document.Forms(0).Submit
End If
End Sub

'画面移動の完了待ち
Sub waitNavigation(IE As Object)
Do While IE.Busy Or IE.ReadyState < 4
DoEvents
Loop
End Sub

****//マクロ(終)****



====私にとっての難題 (+д+;lll )====

処理1と処理2はクリアできたのですが、処理3がどうしてもうまくできません・・・

27行目のsubmitにはIDやnameもなく、そういった場合は
ObjIE.document.Forms(0).Submit
と記述すればいいといろんなサイトに書いてありましたが、
マクロを実行するとエラー(91、424など)が出るばかりで、処理を完了できません。

Ifによって処理3までを実行して、その後はIfに関係なく次のマクロを記述したいのです。

上記のマクロは、詳しい方がご覧になれば「デタラメな書き方」と採点されると思います。


どなたかご教授頂けましたら幸いです。

よろしくお願いいたします。

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

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

ベストアンサー率 41% (888/2115)

ObjIE.document.Forms(0).Submit

ObjIE.document.Forms(0).Click
では試されました?
お礼コメント
whiteprelude

お礼率 100% (2/2)

できましたっっ!!!!

ありがとうございました。

教えて頂くと、
「あ、それだけでOKなんだ・・・」と思うことも、
やっぱり聞いてみないと分からないこともあります。

とても助かりました。

ありがとうございました。
(*´∪`*)
投稿日時:2014/05/03 19:50
関連するQ&A

その他の関連するQ&Aをキーワードで探す

ページ先頭へ