Как вывести полное имя файла рисунка - VBA

Узнай цену своей работы

Формулировка задачи:

Реализовать интерфейс с объектами, представленными на рисунке. Для кнопок CommandButton1 и CommandButton2 загружаются изображения при инициализации формы UserForm1. При нажатии на кнопку с помощью меток Label1 и Label2 выводится полное имя файла рисунка.

Решение задачи: «Как вывести полное имя файла рисунка»

textual
Листинг программы
  1. 'Ïðè ïåðâîì Г§Г*ГЇГіГ±ГЄГҐ ôîðìû ôîðìèðóåì ñîñòГ*Гў çîîïГ*ðêГ*.
  2. Private Sub UserForm_Initialize()
  3.     Dim oIE As Object, oIEDoc As Object, oElems As Object, oAnc As Object
  4.     Dim oHTTP As Object, oStream As Object, oCB As Object
  5.     Dim animals() As String, animalColl As New Collection
  6.     Dim urls As Variant, lnk As Variant
  7.     Dim i As Long, n As Long, newi As Long
  8.     Dim t As String, p As String, picName As String
  9.     On Error Resume Next
  10.     Set oIE = CreateObject("InternetExplorer.Application")
  11.     On Error GoTo 0
  12.     If oIE Is Nothing Then
  13.         MsgBox "ÈçâèГ*ГЁГІГҐ, Г*Г® äëÿ Г°Г*áîòû Г¤Г*Г*Г*îãî Г¬Г*êðîñГ* ГўГ*Г¬ ïðèäåòñÿ ГіГ±ГІГ*Г*îâèòü Internet Explorer."
  14.         Unload Me
  15.         Exit Sub
  16.     End If
  17.     urls = Array( _
  18. "https://www.google.ru/search?q=%D0%BC%D0%BB%D0%B5%D0%BA%D0%BE%D0%BF%D0%B8%D1%82%D0%B0%D1%8E%D1%89%D0%B8%D0%B5+%D0%B6%D0%B8%D0%B2%D0%BE%D1%82%D0%BD%D1%8B%D0%B5&tbm=isch", _
  19. "https://www.google.ru/search?q=%D0%BF%D1%82%D0%B8%D1%86%D1%8B&tbm=isch", _
  20. "https://www.google.ru/search?q=%D1%80%D1%8B%D0%B1%D1%8B&tbm=isch") 'Ññûëêè Г*Г* ïîèñê ÷åðåç Google ГЄГ*ðòèГ*îê - ìëåêîïèòГ*ГѕГ№ГЁГµ, ГЇГІГЁГ¶ ГЁ ðûá.
  21.    For i = 0 To 2
  22.         oIE.Navigate urls(i) 'Ãóãëèì ГЄГ*ðòèГ*ГЄГЁ ÷åðåç Internet Explorer.
  23.        While oIE.Busy Or oIE.ReadyState < 4 'Æäåì, ïîêГ* ГўГҐГЎ-Г±ГІГ°Г*Г*ГЁГ¶Г* Г§Г*ãðóçèòñÿ.
  24.            DoEvents
  25.         Wend
  26.         Set oIEDoc = oIE.Document
  27.         Set oElems = oIEDoc.getElementsByClassName("rg_l")
  28.         For Each oAnc In oElems 'Äëÿ ГЄГ*æäîãî èçîáðГ*æåГ*ГЁГї-ãèïåðññûëêè Г*Г* Г±ГІГ°Г*Г*èöå...
  29.            i = i + 1
  30.             lnk = oAnc.getAttribute("href") 'a) ïîëó÷Г*ГҐГ¬ Г§Г*Г*Г·ГҐГ*ГЁГҐ Г*òðèáóòГ* "href"
  31.            lnk = Mid(lnk, InStr(lnk, "imgurl")) 'ГЎ) ïîëó÷Г*ГҐГ¬ ГўГ*óòðè Г*ГҐГЈГ® ГЇГ*Г°Г*ìåòð "imgurl"
  32.            lnk = Mid(Left(lnk, InStr(lnk, "&") - 1), 8) 'Гў) îòñåêГ*ГҐГ¬ ñëîâî "imgurl=" ГЁ âòîðè÷Г*ûå ГЇГ*Г°Г*ìåòðû.
  33.            'Debug.Print lnk
  34.            animalColl.Add lnk
  35.         Next oAnc
  36.         If animalColl.Count = 0 Then
  37.             MsgBox "ГѓГҐГ*ГЁГ*ëüГ*Г®! ГЉГ*ГЄ ГўГ» óìóäðèëèñü Г±Г*îâГ* ïîëó÷èòü ГЅГІГі îøèáêó? ГђГ*Г±Г±ГЄГ*æèòå ñâîþ èñòîðèþ Aksima Г*Г* ôîðóìå cyberforum.ru"
  38.             Unload Me
  39.             Exit Sub
  40.         End If
  41.     Next i
  42.     Set oIE = Nothing
  43.     'Г‡Г*Г*îñèì ñïèñîê ññûëîê Гў Г¬Г*Г±Г±ГЁГў - Г± Г¬Г*ññèâîì óäîáГ*ГҐГҐ.
  44.    n = animalColl.Count - 1
  45.     ReDim animals(n) As String
  46.     For i = 0 To n
  47.         animals(i) = animalColl(i + 1)
  48.     Next i
  49.     'ÏåðåìåøèâГ*ГҐГ¬ ññûëêè ñëó÷Г*Г©Г*ûì îáðГ*çîì.
  50.    Randomize
  51.     For i = 0 To 1
  52.         newi = Int(Rnd() * (n + 1))
  53.         t = animals(i)
  54.         animals(i) = animals(newi)
  55.         animals(newi) = t
  56.     Next i
  57.     For i = n To 1 Step -1
  58.         newi = Int(Rnd() * (i + 1))
  59.         t = animals(i)
  60.         animals(i) = animals(newi)
  61.         animals(newi) = t
  62.     Next i
  63.     'ÈçîáðГ*æåГ*ГЁГї ГЇГ® äâóì ïåðâûì ññûëêГ*Г¬ Г§Г*ãðóæГ*ГҐГ¬ Г*Г* ГЄГ*îïêè,
  64.    'ГЁ ГўГ±ГҐ ññûëêè ñîõðГ*Г*ГїГҐГ¬ Гў ñêðûòîå òåêñòîâîå ïîëå äëÿ
  65.    'Г¤Г*ëüГ*åéøåãî èñïîëüçîâГ*Г*ГЁГї.
  66.    tbAnimals = Join(animals, ",")
  67.     Set oHTTP = CreateObject("MSXML2.XMLHTTP")
  68.     Set oStream = CreateObject("ADODB.Stream")
  69.     oStream.Type = 1
  70.     p = ThisWorkbook.Path & "\"
  71.     For i = 0 To 1
  72.         picName = Mid(animals(i), InStrRev(animals(i), "/") + 1)
  73.         oHTTP.Open "GET", animals(i), False
  74.         oHTTP.Send
  75.         oStream.Open
  76.         oStream.Write oHTTP.responseBody
  77.         oStream.SaveToFile p & picName
  78.         oStream.Close
  79.         Set oCB = Me.Controls("cbAnimal" & i + 1)
  80.         oCB.Picture = LoadPicture(p & picName, oCB.Width, oCB.Height)
  81.         Kill p & picName
  82.     Next i
  83.     Set oStream = Nothing
  84.     Set oHTTP = Nothing
  85.     f = True
  86. End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы