Excel VBA質問箱 IV

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

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


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

【36370】2個目をクリックする。 よっちゃん 06/3/30(木) 1:18 質問[未読]
【36376】Re:2個目をクリックする。 やっちん 06/3/30(木) 8:51 発言[未読]
【36378】Re:2個目をクリックする。 よっちゃん 06/3/30(木) 9:30 お礼[未読]
【36383】新たな質問させてください! よっちゃん 06/3/30(木) 11:54 質問[未読]
【36385】Re:新たな質問させてください! Kein 06/3/30(木) 12:06 発言[未読]
【36386】Re:新たな質問させてください! よっちゃん 06/3/30(木) 12:12 質問[未読]
【36392】Re:新たな質問させてください! よっちゃん 06/3/30(木) 12:19 質問[未読]
【36393】Re:新たな質問させてください! Kein 06/3/30(木) 12:50 回答[未読]
【36415】Re:新たな質問させてください! よっちゃん 06/3/30(木) 17:39 質問[未読]
【36416】Re:新たな質問させてください! Kein 06/3/30(木) 17:46 発言[未読]
【36418】Re:新たな質問させてください! よっちゃん 06/3/30(木) 17:51 お礼[未読]

【36370】2個目をクリックする。
質問  よっちゃん  - 06/3/30(木) 1:18 -

引用なし
パスワード
   For Each objITEM In objIE.Document.all 
      Debug.Print objITEM.Innertext 

      If objITEM.Innertext = "掲示板" Then
        objITEM.Click 
        Exit For   
      End If
  Next

例えばこのコードのとき時、掲示板という字が多数あって、
その2番目をクリックするときはどのように書いたらいいのでしょうか?
どなたか助言お願いします!

【36376】Re:2個目をクリックする。
発言  やっちん  - 06/3/30(木) 8:51 -

引用なし
パスワード
   ▼よっちゃん さん:
こんにちは。
ループの中でカウントしていくと、今が何番目かわかりますよ。

【36378】Re:2個目をクリックする。
お礼  よっちゃん  - 06/3/30(木) 9:30 -

引用なし
パスワード
   解決しました。ありがとうございました♪♪

【36383】新たな質問させてください!
質問  よっちゃん  - 06/3/30(木) 11:54 -

引用なし
パスワード
   ▼For Each objITEM In objIE.Document.all 
      Debug.Print objITEM.Innertext 

      If objITEM.Innertext = "掲示板" Then
        objITEM.Click 
        Exit For   
      End If
  Next
で掲示板の前が「わくわく掲示板」、「どきどき掲示板」、「はらはら掲示板」
とあった場合掲示板のところだけリンクになっていて、どきどきやはらはらの
部分はリンクになっていません。
しかも、この「わくわく掲示板」や「はらはら掲示板」は毎回表示されている
位置が違うので検索して割り出したいのですが、
たとえばわくわく掲示板という文字を探す時、「わくわく」に付随する{掲示板}という文字だけクリックするにはどうしたらいいのでしょうか?

【36385】Re:新たな質問させてください!
発言  Kein  - 06/3/30(木) 12:06 -

引用なし
パスワード
   そのサイトへ行って、IEのメニューバーから「表示」「ソース」を選択し、
出てきたHTMLソースを全選択でコピーして、この掲示板に貼り付けてみて
下さい。

【36386】Re:新たな質問させてください!
質問  よっちゃん  - 06/3/30(木) 12:12 -

引用なし
パスワード
   <!DOCTYPE HTML PUBLIC "-//W3C//DTD Compact HTML 1.0 Draft//EN">
<html>
<head>
</head>
<body><center>みんなの掲示板</center>
<hr> 2BBS<br>   <br>どきどき<br>掲示板<br>
<br>
<br>
<br>わくわく<br>掲示板<br>
br>
<br>
<br><hr>
ホームへ
</body>
</html>

元ソースではないですが、基本こんな感じです。

【36392】Re:新たな質問させてください!
質問  よっちゃん  - 06/3/30(木) 12:19 -

引用なし
パスワード
   >><!DOCTYPE HTML PUBLIC "-//W3C//DTD Compact HTML 1.0 Draft//EN">
>><html>
>><head>
>></head>
>><body><center>みんなの掲示板</center>
>><hr> 2BBS<br>   <br>どきどき<br>< href="http://www.vbalab.net/vbaqa/c-board.cgi?cmd=one;no=36383;id=ecel">掲示板</a><br>
>><br>
>><br>
>><br>わくわく<br><href="http://www.vbalab.net/vbaqa/c-board.cgi?cmd=one;no=36383;id=ecel">掲示板</a><br>
>>br>
>><br>
>><br><hr>
>><href="http://www.vbalab.net/vbaqa/c-board.cgi?cmd=one;no=36383;id=ecel">ホームへ </a>
>></body>
>></html>
>>
リンクされちゃったのでリンクのaをぬきました。
まあ、詳しい方ならこれでわかると思いますので。,

【36393】Re:新たな質問させてください!
回答  Kein  - 06/3/30(木) 12:50 -

引用なし
パスワード
   とりあえず・・

Dim Ps As Long, Pe As Long
Dim MyHTML As String, GetURL As String
'と、変数の宣言を追加

'中略

MyHTML = objIE.Document.Body.InnerHTML
Ps = InStr(1, MyHTML, "わく") + 15
If Ps = 15 Then
  MsgBox "検索した文字「わく」が見つかりません", 48
  objIE.Quit: Set objIE = Nothing: Exit Sub
End If
Pe = InStr(Ps, MyHTML, "掲示") - 2
GetURL = Mid$(MyHTML, Ps, Pe - Ps)
oblIE.Navigate GetURL

というように、URL部分を切り出して Navigate してみたら、どうかな ?

【36415】Re:新たな質問させてください!
質問  よっちゃん  - 06/3/30(木) 17:39 -

引用なし
パスワード
   keinさん
ご回答ありがとうございます。
ですが、なんかこの方法だと「amp;」とう文字が
間にはいってしまいちょくでURLにいけないみたいです。
ですので「掲示板」という文字を直接クリックしたいのですが
方法はないものでしょうか?

【36416】Re:新たな質問させてください!
発言  Kein  - 06/3/30(木) 17:46 -

引用なし
パスワード
   私は
>そのサイトへ行って
と書いたつもりですが、提示されたソースは実際に問題のサイトのものですか ?
問題のサイトのURLは提示できませんか ?

【36418】Re:新たな質問させてください!
お礼  よっちゃん  - 06/3/30(木) 17:51 -

引用なし
パスワード
   ごめんなさい!
一応、詳しい方ならこのHTMLでも
できると思うのですが?
とりあえずreplaseで邪魔な文字を削除して
目的のことができました。お手数かけて申し訳ありません。
ありがとうございました!

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