Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.04.2016, 20:49   #1
Demetros
Форумчанин
 
Регистрация: 28.01.2014
Сообщений: 126
По умолчанию Анекдот в форме

Добрый вечер всем! Сегодня нашел код для вставки случайного анекдота на вэб страничку:
Код HTML:
<script type="text/javascript" src="http://www.anekdot.ru/rss/randomu.html" charset="utf-8"></script>
Можно ли как-то этот код прикрутить к форме VBA в экселе?
Игорь, если можно, то как?
Вложения
Тип файла: zip Новый текстовый документ.zip (279 байт, 9 просмотров)

Последний раз редактировалось Demetros; 26.04.2016 в 20:53.
Demetros вне форума Ответить с цитированием
Старый 26.04.2016, 21:33   #2
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

1. нужно иметь список анекдотов (файл, вэб страницу, базу данных)
2. нужно из списка получить случайный анекдот

когда есть ответ на п.1, то п.2 - это как два байта отослать
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 26.04.2016, 21:35   #3
Demetros
Форумчанин
 
Регистрация: 28.01.2014
Сообщений: 126
По умолчанию

это все уже есть, этот код отображает случайный анекдот с адреса анекдот.ру
открой вложенный файл в браузере, обнови несколько раз.
Demetros вне форума Ответить с цитированием
Старый 26.04.2016, 21:49   #4
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

http://www.anekdot.ru - вижу страницу с анекдотами
http://www.anekdot.ru/rss/randomu.html - вижу хрень какую-то

я могу решить конкретную задачу, и не готов решать ребусы типа
http://www.anekdot.ru/rss/randomu.html - а угадай-ка, где здесь анекдот

ребусы в другой ветке форума, пишите туда
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 26.04.2016, 22:09   #5
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

1) прогружаем исходный код веб-страницы по ссылке
http://excelvba.ru/code/GetHTTPResponse
(сразу с перекодировкой в UTF-8)

2) берем текст из результата

Код:
Function NewAnekdot() As String
    On Error Resume Next
    Set oXMLHTTP = CreateObject("MSXML2.XMLHTTP")
    With oXMLHTTP
        .Open "GET", "http://www.anekdot.ru/rss/randomu.html?rnd=" & Rnd() * 100000, False
        .Send
        With CreateObject("ADODB.Stream")
            Filename$ = Environ("tmp") & "\response.txt"
            .Charset = "utf-8": .Type = 1        ' adTypeBinary:
            .Open: .Write oXMLHTTP.ResponseBody
            .SaveToFile Filename$, 2
            .Type = 2        'adTypeText
            .LoadFromFile Filename$
            NewAnekdot = .ReadText
            .Close
        End With
    End With
    NewAnekdot = Split(NewAnekdot, "['")(1)
    NewAnekdot = Split(NewAnekdot, "']")(0)
    NewAnekdot = Replace(NewAnekdot, "<br>", vbNewLine)
    NewAnekdot = Replace(NewAnekdot, "','", vbNewLine & "==============" & vbNewLine)
    Set oXMLHTTP = Nothing
End Function

Sub test() ' запускайте этот макрос
    MsgBox NewAnekdot
End Sub

Пробуйте
EducatedFool вне форума Ответить с цитированием
Старый 27.04.2016, 21:02   #6
Demetros
Форумчанин
 
Регистрация: 28.01.2014
Сообщений: 126
По умолчанию

EducatedFool, все работает, спасибо!
Demetros вне форума Ответить с цитированием
Старый 27.04.2016, 21:03   #7
Demetros
Форумчанин
 
Регистрация: 28.01.2014
Сообщений: 126
По умолчанию

Цитата:
Сообщение от IgorGO Посмотреть сообщение
http://www.anekdot.ru - вижу страницу с анекдотами
http://www.anekdot.ru/rss/randomu.html - вижу хрень какую-то

я могу решить конкретную задачу, и не готов решать ребусы типа
http://www.anekdot.ru/rss/randomu.html - а угадай-ка, где здесь анекдот

ребусы в другой ветке форума, пишите туда
работает, однака...
Demetros вне форума Ответить с цитированием
Старый 28.04.2016, 00:10   #8
Demetros
Форумчанин
 
Регистрация: 28.01.2014
Сообщений: 126
По умолчанию

немного переделал
Вложения
Тип файла: zip анекдот.zip (13.0 Кб, 17 просмотров)
Demetros вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Очередной анекдот, или как я потерял пароль на свою аську rpy3uH Свободное общение 28 30.06.2011 13:36
Форма на форме) Irina_87 Компоненты Delphi 3 28.04.2010 09:32
Scroll на форме MasterofCDM Общие вопросы Delphi 5 24.02.2009 16:18
рисование на форме Kostua Помощь студентам 2 26.07.2008 16:24