[[20150928093336]] 『「エクセルの学校」の過去ログをVBAで表示したい』(田吾作) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『「エクセルの学校」の過去ログをVBAで表示したい』(田吾作)

 連続質問失礼します。

 いま、WEBクエリに関する質問をさせていただく準備として、ここ(エクセルの学校)の過去ログを
 表示するコードを作成中です。

 指定の年月の過去ログをIE表示するために下記のコードを組んだのですが、コンボボックスで
 指定の年月が選択されません。
 ソースを見ても年月の指定の仕方が間違っているように思えないのですが、原因が分かりません。

 下記の例ですと、今日(2015/9/28)現在、「201508」を選択するようにしています。
 が、結果はコンボボックスがブランクになります。

  .Forms(0).All("listbox_1").Value = nengetu
 をコメントアウトにして実行すると、「201509」が選択された状態になります。

 どのように修正したらいいでしょうか、ご教示お願いいたします。

 Sub test()
  Dim nengetu As String
  'Dim nengetu As Long
  Dim MyShell As Object, objIE As Object, MyWindow As Object
  Dim Ck As Boolean
   nengetu = Format(DateSerial(Year(Date), Month(Date) - 1, 1), "yyyymm")
   'nengetu = "201508"
   'MsgBox nengetu
   Set MyShell = CreateObject("Shell.Application")
   For Each MyWindow In MyShell.Windows
    If UCase(Right(MyWindow.FullName, 12)) = "IEXPLORE.EXE" Then
       Set objIE = MyWindow: Ck = True: Exit For
    End If
   Next MyWindow
   If Ck = False Then
      Set objIE = CreateObject("InternetExplorer.Application")
   End If
   With objIE
    .Visible = True
    .navigate "http://www.excel.studio-kazu.jp/cgi-bin/pastlogs/pastlogs.cgi"
    Do While .Busy = True
     DoEvents
    Loop
    Do While .Document.ReadyState <> "complete"
     DoEvents
    Loop
    With .Document
     .Forms(0).All("listbox_1").Value = nengetu
     '.Forms(0).Submit
    End With
   End With
 End Sub

< 使用 Excel:Excel2007、使用 OS:WindowsVista >


    Dim i As Long

    With .Document.Forms(0)
        For i = 0 To .All("listbox_1").Length - 1
            If .All("listbox_1")(i).Value = nengetu Then
                .All("listbox_1")(i).Selected = True
                Exit For
            End If
        Next i
        .Submit
    End With
(???) 2015/09/28(月) 10:41

 ???さん、ご回答ありがとうございます。

 ご教示いただきました探り方でIE表示させることができました。
 ありがとうございました。
(田吾作) 2015/09/28(月) 12:55

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.