Jak ve VBA načíst obsah internetové stránky do proměnné?

Místo pro dotazy a rady ohledně programovacích jazyků (C++, C#, PHP, ASP, Javascript, VBS..) a tvorby webových stránek

Moderátor: Mods_senior

petusek
nováček
Příspěvky: 33
Registrován: prosinec 07
Pohlaví: Nespecifikováno
Stav:
Offline

Jak ve VBA načíst obsah internetové stránky do proměnné?

Příspěvekod petusek » 24 bře 2009 19:11

Ahoj všem,

potřeboval bych načíst ve VBA (konkrétně jde o makro/skript v MS Excel 2002) obsah libovolné url do nějaké proměnné, případně souboru, abych s tím obsahem mohl dále manipulovat. Jak se to dělá?

Předem moc děkuji za jakoukoliv (pokud možno relevantní a konstruktivní :-D) radu!

P.

Reklama
Uživatelský avatar
CZechBoY
Master Level 9.5
Master Level 9.5
Příspěvky: 8813
Registrován: srpen 08
Bydliště: Brno
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: Jak ve VBA načíst obsah internetové stránky do proměnné?

Příspěvekod CZechBoY » 27 bře 2009 21:33

ty chceš jako url do proměnné například dát do proměnné toto : http://www.pc-help.cz/
nebo obsah stránky ? např. <body> <head> ...
PHP, Nette, MySQL, C#, TypeScript, Python
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW

petusek
nováček
Příspěvky: 33
Registrován: prosinec 07
Pohlaví: Nespecifikováno
Stav:
Offline

Re: Jak ve VBA načíst obsah internetové stránky do proměnné?

Příspěvekod petusek » 28 bře 2009 00:16

Samozřejmě to druhé.

Na oněch stránkách, o které mi jde, je jistá tabulka. Na každé stránce s jiným obsahem, ale stejným formátem (nadpisy, počet sloupců, snad jen o něco jiný počet řádků).

De facto jde o velký počet takových stránek, jejichž url lze definovat pomocí smyčky. Ale o to nejde, ten algoritmus je jednoduchá smyčka.

O co jde, je skutečnost, že potřebuju do té proměnné (souboru???) načíst ten HTML kód mezi tagem "<table..." a "</table>", zbytek definice stránky (jako <body>, <title>, apod.) v pohodě zvládnu, že jo.

Jak na to?

P.

navstevnik
Level 4
Level 4
Příspěvky: 1142
Registrován: srpen 08
Pohlaví: Nespecifikováno
Stav:
Offline

Re: Jak ve VBA načíst obsah internetové stránky do proměnné?

Příspěvekod navstevnik » 29 bře 2009 12:30

Na vebu jsem jednou nekde nasel prispevek Jiriho Cihare - Dataspectrum resici nacitani denniho kurzu CNB, uz nevim kde (mozna Pandora).
Mirne modifikovana podoba originalu je zde a muze poslouzit jako voditko:

Kód: Vybrat vše

Option Explicit

Sub DenniKurzyCNB()
Dim Dat As Date, Mena As String, URL As String, objHTTP As Object
Dim PoleTemp, PolePom, i As Integer, j As Byte
Dim Pole(), TargetCll As Range
'
  Dat = Format(Now, "dd.mm.yyyy")  ' datum pro posledni platny stav kurzu, novy v prac dny po 14:30
  'adresa odkazu (CNB)
  URL = "http://www.cnb.cz/cs/financni_trhy/devizovy_trh/kurzy_devizoveho_trhu/denni_kurz.txt?date=" & Dat
  Set objHTTP = CreateObject("MSXML2.XMLHTTP")
  Call objHTTP.Open("GET", URL, False)
  objHTTP.Send
'
'  'výpis do okna Immediate
'  Debug.Print (objHTTP.responseText)
'
  'pole pro vypreparování údajù
  PoleTemp = Split(objHTTP.responseText, vbLf) ' novy radek; za posl pol je take vbLf, coz prida prazdnou polozku!
'
'  'výpis do okna Immediate
'  i = 0
'  Do
'    Debug.Print i; " * "; PoleTemp(i)
'    i = i + 1
'  Loop While i < UBound(PoleTemp)
'
  ' separace do Pole a vlozeni do listu
  Set TargetCll = Worksheets("list2").Range("a1")
  ReDim Pole(UBound(PoleTemp), 4)
  i = 0
  Mena = "EUR"
  Do
'************* tato cast jen pro EUR do msgboxu
    If InStr(PoleTemp(i), Mena) > 0 Then
      PolePom = Split(PoleTemp(i), "|")
      MsgBox PolePom(2) & " " & PolePom(3) & " " & PolePom(4)
    End If
'************ tato cast pro vsechny meny do listu
    PolePom = Split(PoleTemp(i), "|")
    j = 0
    Do
      If i > 1 And j = 4 Then
'        ve vypisu je oddelovac desetinnych cisel ",", pro VBA nutno zmenit na "."
'        Pole(i, j) = Val(Replace(PolePom(j), ",", "."))
        TargetCll.Offset(i, j).Value = Val(Replace(PolePom(j), ",", "."))
      Else
        Pole(i, j) = PolePom(j)
        TargetCll.Offset(i, j).Value = PolePom(j)
      End If
      j = j + 1
    Loop While j < UBound(PolePom) + 1
'***********
    i = i + 1
  Loop While i < UBound(PoleTemp)
'
  TargetCll.Resize(UBound(PoleTemp), 5).Columns.AutoFit
'
End Sub

Uživatelský avatar
mike007
Master Level 7.5
Master Level 7.5
Příspěvky: 5860
Registrován: srpen 07
Bydliště: Pardubice
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: Jak ve VBA načíst obsah internetové stránky do proměnné?

Příspěvekod mike007 » 29 bře 2009 15:37

jj, je to na Pandoře ;)
Nejlepší hra je Excel!
Pravidla fóra PC-helpJak označit téma za vyřešené
»»»»»»»»»»»»»»»»»»»»»»»
UPOZORNĚNÍ - můj Skype, Soukromé zprávy či email neslouží jako tech. podpora.
Dotazy pište do fóra. Od toho tu je.


  • Mohlo by vás zajímat
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • Zablokované internetové stránky na Televizi
    od Luminaox » 09 říj 2023 19:47 » v Internet a internetové prohlížeče
    1
    2453
    od zeus Zobrazit poslední příspěvek
    09 říj 2023 21:12
  • Excel - filtr na formát buňky + obsah Příloha(y)
    od popcorn » 19 zář 2023 17:07 » v Kancelářské balíky
    0
    2150
    od popcorn Zobrazit poslední příspěvek
    19 zář 2023 17:07
  • Záhada internetové sítě Příloha(y)
    od Foidza » 03 říj 2023 15:22 » v Internet a internetové prohlížeče
    7
    4001
    od ITCrowd Zobrazit poslední příspěvek
    04 říj 2023 07:57
  • JavaScript - načtení web stranky do řetězce.
    od L.L » 16 bře 2024 10:23 » v Programování a tvorba webu
    4
    2448
    od L.L Zobrazit poslední příspěvek
    20 bře 2024 07:29
  • Zdrojový kód - Podvodné webové stranky
    od 28nitro28 » 26 srp 2023 11:50 » v Vše ostatní (sw)
    10
    2689
    od 28nitro28 Zobrazit poslední příspěvek
    27 srp 2023 09:33

Zpět na “Programování a tvorba webu”

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 25 hostů