13:54

Неизвестный смайлик.
[ok]

Здравствуйте.
У меня вопрос - можно ли как-то средствами экселя (т.е. макросами) считать информацию со странички в интернете? Подразумевается, что макрос будет заходить на такую-то страницу и выбирать там такую-то информацию. Если напрямую, с помощью макросов, это сделать нельзя - посоветуйте как бы это дело провернуть с наименьшими потерями. Нужно добиться, чтобы в определенной яйчейке отображалась определенная информация с определенного сайта.

@темы: MS Office, Программирование

Комментарии
27.05.2009 в 13:56

молодой динамично развивающийся
Если такую программу можно написать на Visual Basic for Applications, то, думаю, можно.
27.05.2009 в 14:04

Неизвестный смайлик.
Чудеснов я не сомневаюсь в том, что это можно, целая куча программ на этом деле и работает :) Я прошу подсказать - как именно. Например, дать мне ссылку на мануал по макросам экселя, а то я например, так и не нашел, чего-то нормального.
27.05.2009 в 14:06

молодой динамично развивающийся
я бы почитал что-то типа VBA for Dummies
27.05.2009 в 14:31

решаем проблемы с головой!
Если такую программу можно написать на Visual Basic for Applications, то, думаю, можно.

Совершенно бесполезный комментарий. В контексте MSO вопрос "можно ли макросом загрузить страницу с сайта" как раз и означает "можно ли сделать это средствами VBA"
27.05.2009 в 14:33

Насколько я помню, библиотеки для работы с http и с сокетами у VBA нет. Но можно создать объект IE и управлять им, например так:
Private Sub DrawingIn_Click()
Set browser = CreateObject("InternetExplorer.Application")
browser.Navigate ("diary.ru")
browser.StatusBar = False
browser.Toolbar = False
browser.Visible = True
browser.Resizable = False
browser.AddressBar = False
End Sub

Правда, непонятно, как в этом случае обрабатывать содержимое страницы.

По-моему, данная задача проще решается сторонними программами, которые будут класть нужные данные например в csv файл, а Эксель уже его будет подгружать.
27.05.2009 в 14:35

нагуглил, что оказывается веб-страницы умеет открывать (в том числе по http) сам Эксель -

Sub Macro1()
Workbooks.Open Filename:= "httр://google.com/"
End Sub
27.05.2009 в 14:35

Неизвестный смайлик.
Enkryptor Я тоже думал, что так проще, но я не смог придумать, как сделать так, чтобы при загрузке экселя, эта программа обнавляла данные и соответсвтенно, данные в экселе тоже обновлялись.
Естественно простой перезапуск программы перед откртием экселя не рассматривается )
27.05.2009 в 14:38

как сделать так, чтобы при загрузке экселя, эта программа обнавляла данные и соответсвтенно, данные в экселе тоже обновлялись.

ну дык просто запускать её по расписанию каждые пять минут, например

или информация на сайте обновляется чаще?
27.05.2009 в 14:43

Неизвестный смайлик.
Enkryptor Ну это вариант, но по моему глючный - программа, автозапускающая сама себя, через каждые пять минут, чтобы показать данные, которые используются раз или два в день - это как-то слишком )
27.05.2009 в 15:00

Неизвестный смайлик.
О, я тут в экселе покопался, у меня окзазывается справка на русском есть, а я и не знал, и обнаружил, что там оказывается есть такая вещь как создание обновляемого веб-запроса. Правда пашет только в ие, да и блин не выводится конкретное значение, а целая таблица. Например, www.cbr.ru/ если я хочу курс валют на сегодня, то эксель может только таблицу захватить такую:

Курсы валют с 27.05.2009 с 28.05.2009
31,1465 31,1846 up +0.0381
Доллар СШАДоллар США
43,4712 43,4963 up +0.0251
ЕвроЕвро


Может кто знает, как его обуздать, до конкретного значения?
27.05.2009 в 16:39

таблицу или строковую переменную? вообще и в том и в другом случае я проблемы в VBA не вижу - берёшь нужную строку, там вырезаешь подстроку до первого пробела и вот тебе значение..
27.05.2009 в 17:35

Неизвестный смайлик.
Enkryptor Я наверное чего-то не понимаю, но это наверняка можно сделать средствами экселя. Т.е. понятно, что строковую переменную выбрать легко - благо она все равно в отдельной яйчейке, но как загружать (и обновлять) конкретно ее, а не всю таблицу и потом вырезать нужное значение.
27.05.2009 в 17:52

это наверняка можно сделать средствами экселя

тем более, в чём тогда остаётся вопрос?
28.05.2009 в 08:33

Неизвестный смайлик.
Enkryptor Как?
28.09.2009 в 16:01

как вырезать из строки подстроку? дык формулой