vbでweb siteのリンクのリンク名に変数を指定したいのですがうまくきません。どなたか教えていただけないでしょうか? コードは以下のようになっています。
Dim objIE
Dim objShell
Dim objLINK
Dim j As Integer
objShell = CreateObject("InternetExplorer.Application")
objIE = CreateObject("InternetExplorer.Application")
objIE.Visible = True 'IEウィンドウを表示
objIE.Navigate2("http://www.data.jma.go.jp/obd/stats/etrn/index.p …
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()
Next j
No.5
- 回答日時:
No4の説明が一部抜けていました。
質問では、
objIE = CreateObject("InternetExplorer.Application")
となっていますが、
Set objIE = CreateObject("InternetExplorer.Application")
のようにする必要があります。
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.p …
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")
は必要ないのでコメントアウトしています。
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/da … & i & "&month=" & j & "&day=&elm=daily&view=")
ということになります。
ちなみに、前のご質問(http://oshiete.goo.ne.jp/qa/6782243.html)で
>サイトはアメダスの横浜の2010年の1月の日ごとのデータです
>たとえば気温のデータだけ取り出したいのですが可能でしょうか?
とお書きですが、「Excel の VBA」でのお話しでしたら、[データ(D)] - [外部データの取り込み(D)] - [新しい Web クエリ(W)...] で、上記ページ を開いて、当該の テーブル を取り込み、「気温のデータだけ」他の シート に コピペ する、というようなことを、[新しいマクロの記録] で記録してみられてはいかがでしょうか?
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
では?
No.1
- 回答日時:
If objLINK.InnerText = "2010年 & j & 月の日ごとの値を表示" Then
上記コードは質問用ですか?
実際のコードが上記なら無理でしょう・・・
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) EXCEL VBAで NHK NEWSの NEWSデータ内容取得が できない 1 2023/04/09 12:26
- Visual Basic(VBA) InputBoxでキャンセルボタンを押したらファイル自体を閉じたい 3 2022/07/23 17:52
- Visual Basic(VBA) このVBAでExcelアプリケーションを作成は必要ですか? 3 2023/07/19 21:13
- Visual Basic(VBA) ①ExcelVBAでカレンダーを作り、別のユザーフォームで日付を入力したいのですがエラーになります。 1 2023/02/17 18:39
- Visual Basic(VBA) EXCEL VBAにて動的にCheckBOXを複数作成し、同BOXにイベントを追加したい 1 2023/03/16 07:05
- Visual Basic(VBA) Excel VBAの解読について質問があります。 概要は、マクロでチェックボックスにチェックすると日 1 2023/02/10 07:50
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
- Visual Basic(VBA) 貼り付けた値が消えていく 以下はソースファイルの2番目のシートのB6から最終行を取得 ターゲットファ 2 2023/07/27 12:23
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Visual Basic(VBA) ExcelVBAで、index、match関数を使用して、指定範囲に出力したい 3 2022/10/18 21:53
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テキストボックスのvalueとtext...
-
ExcelでGaussian fittingをした...
-
ハッシュテーブル(連想配列)が...
-
変数名の取得
-
rand関数の割合変更
-
power BI クエリエディター 〇...
-
変数に代入してある数値を表示...
-
PysimpleGUIでデータベースを作る
-
Request.QueryString への値の...
-
VB.NETでコンボボックスの1行目...
-
値を返さないコード パス
-
Excel VBA 複数選択したリスト...
-
RGB値をL*a*b*に変換したい
-
ユーザーフォームのテキストボ...
-
C言語では0は・・・
-
textboxとLabelを動的に変更する
-
RegisterClassExのエラー原因
-
ListBoxでオートフィルター表示
-
コンボボックスで選択した項目...
-
代入したのに値が更新されない...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
テキストボックスのvalueとtext...
-
マクロ 特定のセル値のみクリ...
-
VB.NETでコンボボックスの1行目...
-
変数名の取得
-
値を返さないコード パス
-
Excel VBAのリストボックスの値...
-
VB初心者。小数点以下の表示で...
-
ハッシュテーブル(連想配列)が...
-
textboxとLabelを動的に変更する
-
PL/SQLでのTO_DATEの時間取得に...
-
VB.NETでアクティブなformを知...
-
Excel vba ユーザーフォームテ...
-
マクロで奇数と偶数の値を2か所...
-
DataTableに対するLINQについて
-
【C++/CLI.NET】コンボボックス...
-
[VBA]選択範囲の下から上に処理...
-
範囲が指定されている乱数について
-
[VB.net] DataGridViewのコンボ...
-
変数に代入してある数値を表示...
-
vbscriptを使いexcelを参照して...
おすすめ情報