• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:vbのリンク移動)

vbのリンク移動

このQ&Aのポイント
  • vbでweb siteのリンクのリンク名に変数を指定したいのですがうまくきません。
  • どなたか教えていただけないでしょうか?
  • コードは以下のようになっています。

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

  • ベストアンサー
  • piroin654
  • ベストアンサー率75% (692/917)
回答No.4

No2です。vbということですが、何のvbなのか わからないので、Excel、Access、vb6その他 で一応動くであろうということで以下のように コードを設定して動かしてみました。 Private Sub Command1_Click() Dim objIE As Object 'Dim objShell Dim objLINK Dim j As Integer 'objShell = CreateObject("InternetExplorer.Application") Set objIE = CreateObject("InternetExplorer.Application") objIE.Visible = True 'IEウィンドウを表示 objIE.Navigate2 ("http://www.data.jma.go.jp/obd/stats/etrn/index.php?prec_no=46&prec_ch=%90_%93%DE%90%EC%8C%A7&block_no=47670&block_ch=%89%A1%95l&year=2010&month=1&day=&elm=&view=") Do Until objIE.Busy = False Loop For j = 1 To 2 For Each objLINK In objIE.Document.Links If objLINK.InnerText = "2010年" & j & "月の日ごとの値を表示" Then objLINK.Click End If Next objLINK Next j End Sub Dim objShell と、 objShell = CreateObject("InternetExplorer.Application") は必要ないのでコメントアウトしています。

その他の回答 (4)

  • piroin654
  • ベストアンサー率75% (692/917)
回答No.5

No4の説明が一部抜けていました。 質問では、 objIE = CreateObject("InternetExplorer.Application") となっていますが、 Set objIE = CreateObject("InternetExplorer.Application") のようにする必要があります。

  • DOUGLAS_
  • ベストアンサー率74% (397/534)
回答No.3

#>[技術者向] コンピューター ▼ > プログラミング ▼ > Visual Basic #「vbのリンク移動」となっていますが、Excel の VBA ですよね!  コード の中に書かれている URL の ページ を開いて objLINK.InnerText = "2010年 & j & 月の日ごとの値を表示" となる「objIE.Document.Links」は「2010年1月の日ごとの値を表示」と記されているトコロ1ヶ所のみです。  こういう場合は、いちいち For Each objLINK In objIE.Document.Links ~~ Next で廻さなくても、最初から objIE.Navigate2 ("~~") の引数に「2010年1月の日ごとの値を表示」の リンク先、つまり ~~.data.jma.go.jp/obd/stats/etrn/view/daily_s1.php?prec_no=46&prec_ch=%90_%93%DE%90%EC%8C%A7&block_no=47670&block_ch=%89%A1%95l&year=2010&month=1&day=&elm=daily&view= を指定すればよいかと存じます。  つまり、 For j = 1 To 12 ~~ Next j と書いていらっしゃるであろう部分につきましては、お好きな形で「○○年△△月」という数字を決めて、その「○○」と「△△」を「&year=2010&month=1」の部分に当てはめることになります。  例えば、「○○年」に当たる変数を「i」、「△△月」に当たる変数を「j」とすると、 objIE.Navigate2 ("http://www.data.jma.go.jp/obd/stats/etrn/view/daily_s1.php?prec_no=46&prec_ch=%90_%93%DE%90%EC%8C%A7&block_no=47670&block_ch=%89%A1%95l&year=" & i & "&month=" & j & "&day=&elm=daily&view=") ということになります。  ちなみに、前のご質問(http://okwave.jp/qa/q6782243.html)で >サイトはアメダスの横浜の2010年の1月の日ごとのデータです >たとえば気温のデータだけ取り出したいのですが可能でしょうか? とお書きですが、「Excel の VBA」でのお話しでしたら、[データ(D)] - [外部データの取り込み(D)] - [新しい Web クエリ(W)...] で、上記ページ を開いて、当該の テーブル を取り込み、「気温のデータだけ」他の シート に コピペ する、というようなことを、[新しいマクロの記録] で記録してみられてはいかがでしょうか?

  • piroin654
  • ベストアンサー率75% (692/917)
回答No.2

For j = 1 To 2 と Next j の間に いろいろなものが抜けているようですが。 試していませんが、コードの流れから、 For j = 1 To 2 For Each objLINK In objIE.Document.Links If objLINK.InnerText = "2010年" & j & "月の日ごとの値を表示" Then objLINK.Click() End If Next objLINK Next j では?

  • Sinogi
  • ベストアンサー率27% (72/260)
回答No.1

If objLINK.InnerText = "2010年 & j & 月の日ごとの値を表示" Then 上記コードは質問用ですか? 実際のコードが上記なら無理でしょう・・・

関連するQ&A

専門家に質問してみよう