Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


10486 / 13644 ツリー ←次へ | 前へ→

【21562】IEへのアクセスについて kawata 05/1/24(月) 9:32 質問[未読]
【21563】Re:IEへのアクセスについて りすりす 05/1/24(月) 10:32 回答[未読]
【21564】Re:IEへのアクセスについて kawata 05/1/24(月) 10:51 お礼[未読]
【21572】Re:IEへのアクセスについて りすりす 05/1/24(月) 15:07 回答[未読]
【21573】Re:IEへのアクセスについて kawata 05/1/24(月) 15:13 お礼[未読]
【21574】Re:IEへのアクセスについて りすりす 05/1/24(月) 15:16 発言[未読]
【21575】Re:IEへのアクセスについて kawata 05/1/24(月) 15:20 お礼[未読]
【21578】Re:IEへのアクセスについて りすりす 05/1/24(月) 15:48 発言[未読]
【21579】Re:IEへのアクセスについて kawata 05/1/24(月) 15:56 お礼[未読]
【21581】Re:IEへのアクセスについて りすりす 05/1/24(月) 16:15 発言[未読]
【21582】Re:IEへのアクセスについて kawata 05/1/24(月) 16:24 お礼[未読]

【21562】IEへのアクセスについて
質問  kawata  - 05/1/24(月) 9:32 -

引用なし
パスワード
   kawataです、よろしくお願いします。
(Windows2000/Excel2000)

ExcelのVBAでWEBへアクセスしたいのですが・・。

まずは、トップページのログオンについてですが、IDとPASSを
ほりこんでSubmitするところまではクリアできています。

で、その先のページのソースが、

  <TABLE border="0" cellpadding="0" cellspacing="1">
      <TR><TD nowrap bgcolor="#5A5D9C" width="50" height="27"></TD><TD> </TD><TD ID="MENU1" align="CENTER" valign="MIDDLE" nowrap width="185" height="27" onmouseover="DoMouseOver('MENU1')" onmouseout="DoMouseOut('MENU1')" bgcolor="#393839" onclick="SelectMenu(1);" class="menu">メニュー1</TD> <TD> </TD><TD nowrap bgcolor="#5A5D9C" width="50" height="27"></TD></TR>
      <TR><TD nowrap bgcolor="#5A5D9C" width="50" height="27"></TD><TD> </TD><TD ID="MENU2" align="CENTER" valign="MIDDLE" nowrap width="185" height="27" onmouseover="DoMouseOver('MENU2')" onmouseout="DoMouseOut('MENU2')" bgcolor="#393839" onclick="SelectMenu(2);" class="menu">メニュー2</TD> <TD> </TD><TD nowrap bgcolor="#5A5D9C" width="50" height="27"></TD></TR>

〜以下同様

となっています。※読みにくくて申し訳ございません。

これの「メニュー1」を選択したいのですが、Submit、もしくはClickできそうな
Nameがわかりません。
onclick="SelectMenu(1); 辺りに検討つけているのですが、さっぱり先へ進んでくれません。

この記述について、ご指導よろしくお願いします。
ソースに関して、前後の情報が不足であればご指摘ください、追加掲載します。よろしくお願いします。

【21563】Re:IEへのアクセスについて
回答  りすりす  - 05/1/24(月) 10:32 -

引用なし
パスワード
   ▼kawata さん:
>kawataです、よろしくお願いします。
>(Windows2000/Excel2000)
>
>ExcelのVBAでWEBへアクセスしたいのですが・・。
>
>まずは、トップページのログオンについてですが、IDとPASSを
>ほりこんでSubmitするところまではクリアできています。
>
>で、その先のページのソースが、
>
>  <TABLE border="0" cellpadding="0" cellspacing="1">
>      <TR><TD nowrap bgcolor="#5A5D9C" width="50" height="27"></TD><TD> </TD><TD ID="MENU1" align="CENTER" valign="MIDDLE" nowrap width="185" height="27" onmouseover="DoMouseOver('MENU1')" onmouseout="DoMouseOut('MENU1')" bgcolor="#393839" onclick="SelectMenu(1);" class="menu">メニュー1</TD> <TD> </TD><TD nowrap bgcolor="#5A5D9C" width="50" height="27"></TD></TR>
>      <TR><TD nowrap bgcolor="#5A5D9C" width="50" height="27"></TD><TD> </TD><TD ID="MENU2" align="CENTER" valign="MIDDLE" nowrap width="185" height="27" onmouseover="DoMouseOver('MENU2')" onmouseout="DoMouseOut('MENU2')" bgcolor="#393839" onclick="SelectMenu(2);" class="menu">メニュー2</TD> <TD> </TD><TD nowrap bgcolor="#5A5D9C" width="50" height="27"></TD></TR>
>
>〜以下同様
>
>となっています。※読みにくくて申し訳ございません。
>
>これの「メニュー1」を選択したいのですが、Submit、もしくはClickできそうな
>Nameがわかりません。
>onclick="SelectMenu(1); 辺りに検討つけているのですが、さっぱり先へ進んでくれません。
>
>この記述について、ご指導よろしくお願いします。
>ソースに関して、前後の情報が不足であればご指摘ください、追加掲載します。よろしくお願いします。

MENU1.SelectMenu(1);
じゃないの?

【21564】Re:IEへのアクセスについて
お礼  kawata  - 05/1/24(月) 10:51 -

引用なし
パスワード
   りすりすさん、ありがとうございます。

>MENU1.SelectMenu(1);
>じゃないの?

どうも、ログオンした後の記述が不明です
(というか、理解せずに使っているのが・・・)。

Sub ie_logon()
Dim objIE As InternetExplorer
Dim objFRAME As FramesCollection
Dim objDOC As IHTMLDocument

  Set objIE = CreateObject("InternetExplorer.application")
  
  objIE.Visible = True
  objIE.navigate "http://www.***.co.jp/"  'すいませんm(__)m

  Call IEwait(objIE)
  
  Set objFRAME = objIE.document.frames
  Set objDOC = objFRAME(0).document

  With objDOC
    .all.loginName.Value = ID
    .all.password.Value = PASS
    .forms("login").submit
  End With
  
  Call IEwait(objIE)
  

'  objIE.Quit
  
  Set objDOC = Nothing
  Set objFRAME = Nothing
  Set objIE = Nothing
End Sub

ログオン後、どのように繋いでいけばいいのでしょうか?
お手数おかけしますが、よろしくお願いします。

【21572】Re:IEへのアクセスについて
回答  りすりす  - 05/1/24(月) 15:07 -

引用なし
パスワード
   >ログオン後、どのように繋いでいけばいいのでしょうか?
>お手数おかけしますが、よろしくお願いします。

ここは、JavaScript教室ではありません。
VB質問箱です。

OLEとIEで検索してください。
下記でマイクロソフトのドキュメントを参考にしましょう。
http://msdn.microsoft.com/library/default.asp?url=/workshop/browser/webbrowser/browser_control_node_entry.asp
http://msdn.microsoft.com/workshop/browser/webbrowser/reference/objects/internetexplorer.asp

JavaScriptリファレンス
http://www.tohoho-web.com/js/index.htm


<html>
<head>
<title>new_page_1.html</title>
</head>
<body>
<script type="text/javascript">
<!--
function SelectMenu()
{
confirm("Hello World")
}
function TestHit()
{
MENU1.onclick();
}
//-->
</script>
<table border="0">
<tbody>
<tr>
<td id="MENU1" onmouseover="DoMouseOver('MENU1')"
onmouseout="DoMouseOut('MENU1')" onclick="SelectMenu(1);" class="menu"
align="center" bgcolor="#ff00ff" height="27" nowrap="nowrap"
valign="middle" width="185">メニュー1</td>
</tr>
<tr>
<td id="MENU2" onmouseover="DoMouseOver('MENU2')"
onmouseout="DoMouseOut('MENU2')" onclick="SelectMenu(2);" class="menu"
align="center" bgcolor="#ff00ff" height="27" nowrap="nowrap"
valign="middle" width="185">メニュー2</td>
</tr>
<tr>
<td top="" onclick="TestHit();"
style="background-color: rgb(255, 255, 204); text-align: center;">Hello
World<br>
</td>
</tr>
</tbody>
</table>
</body>
</html>

Private Sub CommandButton1_Click()

 Dim objIE As Object

  Set objIE = CreateObject("InternetExplorer.application")
 
  objIE.Visible = True
  objIE.navigate "http://自分のページ/new_page_1.html" ' ローカルで試すならセキュリティを下げる
 
 Do While (objIE.Busy)
  DoEvents
 Loop
 Call objIE.document.all.Menu1.Click

End Sub

【21573】Re:IEへのアクセスについて
お礼  kawata  - 05/1/24(月) 15:13 -

引用なし
パスワード
   りすりすさん、ありがとうございます。
さきほど一旦載せられて削除されているので、何か失礼してしまったか?
と気になっおりました。
ご迷惑をおかけします、どうもすいません。

>ここは、JavaScript教室ではありません。
>VB質問箱です。

了解しました。
VBAでなくJavaScriptなんですか・・・・。
(というところにも気がつくスキルもありません。)

どうもお騒がせしました、ありがとうございました。
参考にあげられているサイトで勉強してみます。

【21574】Re:IEへのアクセスについて
発言  りすりす  - 05/1/24(月) 15:16 -

引用なし
パスワード
   ▼kawata さん:
>りすりすさん、ありがとうございます。
>さきほど一旦載せられて削除されているので、何か失礼してしまったか?
>と気になっおりました。
>ご迷惑をおかけします、どうもすいません。
>
>>ここは、JavaScript教室ではありません。
>>VB質問箱です。
>
>了解しました。
>VBAでなくJavaScriptなんですか・・・・。
>(というところにも気がつくスキルもありません。)
>
>どうもお騒がせしました、ありがとうございました。
>参考にあげられているサイトで勉強してみます。

objIEまでは、VBですが
.document以降はブラウザの仕様なので
ブラウザの掲示板かJavaScriptの掲示板に
いったほうがいい回答がくると思います。

【21575】Re:IEへのアクセスについて
お礼  kawata  - 05/1/24(月) 15:20 -

引用なし
パスワード
   りすりすさん、重ね重ねすいませんm(__)m

>objIEまでは、VBですが
>.document以降はブラウザの仕様なので
>ブラウザの掲示板かJavaScriptの掲示板に
>いったほうがいい回答がくると思います。

はい、わかりました。
ありがとうございました、やってみます。

【21578】Re:IEへのアクセスについて
発言  りすりす  - 05/1/24(月) 15:48 -

引用なし
パスワード
   http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/vclib/html/vcrefchtmlview.asp

▼kawata さん:
>りすりすさん、重ね重ねすいませんm(__)m
>
>>objIEまでは、VBですが
>>.document以降はブラウザの仕様なので
>>ブラウザの掲示板かJavaScriptの掲示板に
>>いったほうがいい回答がくると思います。
>
>はい、わかりました。
>ありがとうございました、やってみます。

id= って書いているところが名前です。
IDがついていないものは、呼び出せるけど場所がわからないので呼び出しは困難です。
今回はついているので、
onclick="SelectMenu(1);"
の<>ないを探すとID="Menu1"とあるので
そのクリックがその名前に関連づけられているとわかります。
(IDがない場合は、順に数えないといけないから困難。)

onclickは、クリックしたときの動作。

onclick="SelectMenu(1);"はクリックしたら、
"SelectMenu(1);"というJavaScript関数を呼びなさいって指令。
それをSelectMenu(1)を直接呼ぶこともいいかもしれないけど、
Call objIE.document.all.Menu1.Click
でクリックしたことになります。

マウスのフォーカスで制御している場合もあるので
サイトによっては、
mouseover
click
mouseout
と順に呼び出した方がいいこともあります。


夏頃HTML操作して遊んでいたので
結構難しいからなれるまで、苦労しますよ。 (^_^)


直接スクリプトで操作する技もありますけどね。(そっちの方が制限がないので楽だったりして・・・(^o^))
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/vccore/html/vchowCreatingWebBrowserstyleApplication.asp

【21579】Re:IEへのアクセスについて
お礼  kawata  - 05/1/24(月) 15:56 -

引用なし
パスワード
   りすりすさん、何度も・・・、
すいません、ありがとうございます。

>結構難しいからなれるまで、苦労しますよ。 (^_^)

既に実感しています(^^;。
さきほどのMSのページは英語だし・・・・、
さて、どうするか?と悩んでましたw。
(今回、載せていただいているページは日本語ですね!、一安心)

先ほどの回答を読んでいて、、

  With objDOC
    .all.menu1.Click
  End With

で入れるところまでたどり着きました(感謝、感謝です!)。
いま、次のページで、また悩んでますw。
その次の次に、最終目的のCSVデータがあります、
先は長そうです(人事みたいに(^^;)。

何度もありがとうございました、やってみます!。

【21581】Re:IEへのアクセスについて
発言  りすりす  - 05/1/24(月) 16:15 -

引用なし
パスワード
   おめあてがCSVをもってくるのでしたら、 いままで通りExcelからの操作のほうがいいかもしれないですね。

http://www.tohoho-web.com/js/element.htm
この辺が参考になりますね。

さっきのを
' Call objIE.document.all.Menu1.Click
 Call objIE.document.all.Item("Menu1").Click
とするほうがわかりやすいかもですね

【21582】Re:IEへのアクセスについて
お礼  kawata  - 05/1/24(月) 16:24 -

引用なし
パスワード
   りすりすさん、ありがとうございます。

>おめあてがCSVをもってくるのでしたら、いままで通りExcelからの操作のほうがいいかもしれないですね。

そうなんです、込み入ったところを書くわけにはいかないのですが、
<ある店の発注データを自動的に取得したい>というのが最終目的
です。

>http://www.tohoho-web.com/js/element.htm
>この辺が参考になりますね。

はい、これまでの分も含めて、すべてお気に入りに入れてます。
じっくりと読んでみます(という時間を捻出するのも、一苦労ですw)。

>さっきのを
>' Call objIE.document.all.Menu1.Click
> Call objIE.document.all.Item("Menu1").Click
>とするほうがわかりやすいかもですね

了解です、アレコレ試して修正しておきます。
わかりやすくというのは重要ですね、自分のためにも、後でいじる人のためにも。

ありがとうございました、ず〜〜〜〜と悩んでいたのが、
本日、間違いなく1つ解決しました(理解したのかどうかは置いといて(^^;)。

10486 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free