2017-03-25 6 views
0

HTMLテーブルに配置された画像をクリックするExcel VBAコードを作成しようとしています。私がクリックしようとしている画像にはソースコードしかありません。VBAをクリックして画像をHTMLテーブルに配置する

私は4つの方法で画像をクリックしようとしましたが、いずれも機能しませんでした。誰も私にVBAコードを書く方法を手伝ってもらえますか?

1.

Dim HTMLDoc As Object 
Set HTMLDoc = IE.document 

Dim ElementCol As Object 
Set ElementCol = HTMLDoc.getElementsByTagName("td") 
For Each link In ElementCol 
    If link.innerHTML = "excel.jpg" Then 
     link.Click 
     Exit For 
    End If 
Next link 

2.

Dim HTMLDoc As Object 
Set HTMLDoc = IE.document 

Dim i As Object 
For Each i In HTMLDoc.images 
    If i.src = "../images/excel.jpg" Then 
     i.Click 
    Exit for 
    End If 
Next i 

3.

Dim HTMLDoc As Object 
Set HTMLDoc = IE.document 

Dim img As Object 
For Each img In HTMLDoc.all 
    If img.innerHTML = "excel.jpg" Then 
     img.Click 
     Exit For 
    End If 
Next img 

4.

Dim HTMLDoc As Object 
Set HTMLDoc = site.document 

Dim tdCollection As Object 
Set tdCollection = HTMLDoc.all 
    For Each cell In tdCollection 
     If cell.ID = "singleXLS" Then 
      cell.Click 
      Exit Sub 
     End If 
    Next 

彼reはHTMLコードです。

<tbody><tr> 

<td id="singleXLS" onclick="javascript:gCognosViewer.getRV().viewReport('spreadsheetML');" return="" true;"="" style="cursor:hand;" valign="middle" align="center"> 
<img src="../images/excel.jpg" border="0"></td> 

<td>&nbsp;</td> 

示唆したように、ここで私が使用していたコードです。

Set HTMLDoc = site.Document 
HTMLDoc.getElementById("singleXLS").getElementsByTagName("img")(0).Click 

試してみてください:この代わりの

Sub click_img() 
    Dim URL As String 
    Dim HTMLDoc As Object 
    Set site = CreateObject("internetexplorer.application") 
    URL = Range("B2").Value 'There is an URL in cell B2 

    site.navigate URL 
    site.Visible = True 

    While site.busy 
     Wend 
    Do Until site.readyState = 4 
     DoEvents 
    Loop 


    Set HTMLDoc = site.Document 
    HTMLDoc.getElementById("singleXLS").getElementsByTagName("img")(0).Click 'Error is here 
End Sub 
+1

HTMLDoc.getElementbyId(」 singleXLS ")。getElementsbyTagName(" img ")(0).click –

+0

あなたのクイック応答Timに感謝します。私はこれを試した。しかし、私は実行時エラー424を取得しています:オブジェクトが必要です。助けてください。 – Prakash

+0

私が掲示したコードは、あなたが提供したHTMLがあればうまくいくはずです。あなたの現在のコードを投稿するのに役立つでしょうか。 –

答えて

0

Dim s, i 

Set HTMLDoc = site.Document 
Set s = HTMLDoc.getElementById("singleXLS") 
If Not s Is Nothing Then 
    Set i = s.getElementsByTagName("img")(0) 
    If Not i Is Nothing Then 
     i.Click 
    Else  
     Debug.Print "Img not found!" 
    End If 
Else 
    Debug.Print "singleXLX not found!" 
End If 

より多くのコードが、それはあなたが正確な問題を突き止めるのに役立ちます

+0

ありがとうございました。Tim ....ありがとうございます。実行時エラー13:行の型が一致しません:Set s = HTMLDoc.getElementById( "singleXLS")。私は何日もこのコードを実行しようとしていましたが、毎回違うエラーが発生するため、できませんでした。画像をクリックする他の方法はありますか(例:fireevent Onlcick)? – Prakash

+0

テストするURLがないと、問題の内容を知ることが難しいです。投稿したコードを正確に使用していますか? –

+0

申し訳ありませんTim、共有URLはユーザーIDとパスワードが必要なので、ログオンには役立ちません。それを共有することは違反になります。はい、私は正確に投稿されたコードを使用しました。まだエラーが発生しています。私のExcel VBAで何が問題なのか分かりません。 – Prakash

関連する問題