- ベストアンサー
vbのリンク移動
- vbでweb siteのリンクのリンク名に変数を指定したいのですがうまくきません。
- どなたか教えていただけないでしょうか?
- コードは以下のようになっています。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
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)
No4の説明が一部抜けていました。 質問では、 objIE = CreateObject("InternetExplorer.Application") となっていますが、 Set objIE = CreateObject("InternetExplorer.Application") のようにする必要があります。
- DOUGLAS_
- ベストアンサー率74% (397/534)
#>[技術者向] コンピューター ▼ > プログラミング ▼ > 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)
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)
If objLINK.InnerText = "2010年 & j & 月の日ごとの値を表示" Then 上記コードは質問用ですか? 実際のコードが上記なら無理でしょう・・・