Sub MyXlBss()
  Rem *----*----*    *----*----*    *----*----*    *----*----*
  Rem 山陰放送サイト[ニュース]ページ取り込み処理(外部データの取り込み・HttpRequest使用)
  Rem 作譜:Hitrock Camellia Shinopy
  Rem 言語:Excel VBA
  Rem 機能...
  Rem   山陰放送サイトの[ニュース]ページを読み込みし、
  Rem   Excelシートに書き込みする。
  Rem 注記...
  Rem   MyXlBssを起動して使用。
  Rem 履歴...
  Rem   第1版:2006/09/30:作成。
  Rem *----*----*    *----*----*    *----*----*    *----*----*
  Rem 参照設定する場合...
  Rem   Microsoft Internet Controls
  Rem   Microsoft HTML Object Library
  Rem *----*----*    *----*----*    *----*----*    *----*----*
  Dim myTags As Variant ' DispHTMLElementCollection
  Dim myTag As Variant ' HTMLDivElement
  '
  Dim myHTTP As Variant ' IXMLHTTPRequest
  Dim myIE As Variant ' InternetExplorer
  Dim myDoc As Variant ' MSHTML.HTMLDocument
  Dim myLink As Variant ' MSHTML.HTMLAnchorElement
  '
  Dim myURL As String
  Dim h As Variant ' Hyperlink
  Dim r As Long
  Dim myMax As Long
  Dim myStatusBar As String
  Dim myText As String
  Dim myinnerText As String
  Rem *----*----*    *----*----*    *----*----*    *----*----*
  '
  Application.CommandBars("Task Pane").Visible = False
  On Error Resume Next
  ActiveSheet.Next.Select
  If (Err.Number <> 0) Then
    Sheets.Add After:=Worksheets(Worksheets.Count)
    ActiveSheet.Previous.Select
  End If
  On Error GoTo 0
  '
  myStatusBar = "□山陰放送 ニュース 読み込み開始"
  Application.StatusBar = "MyXlBss: " & myStatusBar
  '
  Range("A1").Select
  myURL = "http://bss.jp/scripts/vnews.cgi"
  '
  With ActiveSheet.QueryTables.Add(Connection:="URL;" & myURL, Destination:=Range("A1"))
    .Name = "vnews"
    .FieldNames = True
    .RowNumbers = False
    .FillAdjacentFormulas = False
    .PreserveFormatting = True
    .RefreshOnFileOpen = False
    .BackgroundQuery = True
    .RefreshStyle = xlInsertDeleteCells
    .SavePassword = False
    .SaveData = True
    .AdjustColumnWidth = True
    .RefreshPeriod = 0
    .WebSelectionType = xlSpecifiedTables
    .WebFormatting = xlWebFormattingAll
    .WebTables = "1"
    .WebPreFormattedTextToColumns = True
    .WebConsecutiveDelimitersAsOne = True
    .WebSingleBlockTextImport = False
    .WebDisableDateRecognition = False
    .WebDisableRedirections = False
    .Refresh BackgroundQuery:=False
  End With
  Rem *----*----*    *----*----*    *----*----*    *----*----*
  '
  ActiveSheet.Next.Cells(1, 1).Value = "山陰放送(BSS)ニュース"
  ActiveSheet.Next.Cells(1, 2).Value = Cells(3, 1).Text
  '
  r = 3
  For Each h In ActiveSheet.Hyperlinks
    ActiveSheet.Next.Cells(r, 1).Value = h.TextToDisplay
    ActiveSheet.Next.Cells(r, 2).Value = h.Name
    '
    r = r + 1
    DoEvents
  Next ' ActiveSheet.Hyperlinks
  myMax = r - 1
  '
  ActiveSheet.Next.Select
  ActiveSheet.Name = "山陰放送"
  Columns("A:A").ColumnWidth = 30#
  Columns("B:B").ColumnWidth = 80#
  ActiveWindow.Zoom = 75
  Rows("1").RowHeight = 30#
  Rows("2").RowHeight = 30#
  '
  For r = 3 To myMax
    Cells(r, "A").Select
    Cells(r, "A").Hyperlinks.Add Anchor:=Selection, Address:=Cells(r, "B").Value, _
                                                    TextToDisplay:=Cells(r, "A").Text
    DoEvents
  Next ' r
  Rem *----*----*    *----*----*    *----*----*    *----*----*
  '
  Rem 本文の取り込み
  Set myHTTP = CreateObject("MSXML2.XMLHTTP") ' ("Microsoft.XMLHTTP")
  Set myIE = CreateObject("InternetExplorer.Application")
  '
  For r = 3 To myMax
    myURL = Cells(r, "B").Text
    '
    With myIE
      .Navigate "about:blank"
      .Visible = False ' True
      Do While .Busy
        DoEvents
      Loop
      myStatusBar = "●読み込み中:" & r * 100 \ myMax & "% "
      myStatusBar = myStatusBar & r & "/" & myMax & "行 "
      Application.StatusBar = "MyXlBss: " & myStatusBar
      DoEvents
      Set myDoc = .Document
    End With
    '
    Call myHTTP.Open("GET", myURL, False)
    Call myHTTP.Send
    If myHTTP.readyState <> 4 Then ' 4:READYSTATE_COMPLETE
      myStatusBar = "接続できません。" & vbCr & myHTTP.statusText & vbCr
      myStatusBar = myStatusBar & "myHTTP.readyState: " & myHTTP.readyState & vbCr
      myStatusBar = myStatusBar & "URL: " & myURL
      MsgBox myStatusBar, vbOKOnly, "MyXlBss"
      GoTo MyXlBssSubExit
    End If
    If myHTTP.Status <> 200 Then
      myStatusBar = "接続できません。" & vbCr & myHTTP.statusText & vbCr
      myStatusBar = myStatusBar & "myHTTP.Status: " & myHTTP.Status & vbCr
      myStatusBar = myStatusBar & "URL: " & myURL
      MsgBox myStatusBar, vbOKOnly, "MyXlBss"
      GoTo MyXlBssSubExit
    End If
    '
    myText = StrConv(myHTTP.responseBody, vbUnicode)
    myText = Replace(myText, " src=", " Zzzsrc=")
    myDoc.write myText
    '
    Set myTags = myDoc.getElementsByTagName("tr")
    myinnerText = myTags.Item(0).innerText
    myinnerText = myinnerText & vbLf & myTags.Item(1).innerText & vbLf
    Cells(r, "B").Select
    Selection.VerticalAlignment = xlTop
    Cells(r, "B").Value = myinnerText
    DoEvents
  Next ' r
  Cells(1, "B").Select
  Rem *----*----*    *----*----*    *----*----*    *----*----*
  '
MyXlBssSubExit:
  ActiveSheet.Previous.Select
  Application.DisplayAlerts = False
  ActiveSheet.Delete
  Application.DisplayAlerts = True
  myStatusBar = "処理が終了しました。"
  Application.StatusBar = "MyXlBss: " & myStatusBar & Now()
  Application.Speech.Speak myStatusBar, False
  '
  myIE.Visible = True
  myIE.Quit
  Application.ScreenUpdating = True
  Beep
  '
  Set myHTTP = Nothing
  Set myIE = Nothing
  Set myDoc = Nothing
End Sub ' MyXlBss *----*----*    *----*----*    *----*----*    *----*----*
inserted by FC2 system