Excel_WEB

2014年8月31日 (日)

VBAでWEBデータを取得する。

WEBページのURLを事前に取得しておき、そのURLを入力した行毎に順に
該当URLに接続し、その表示されたデータを取得する例。

6工程で、WEB表示データをエクセル・リストデータに取得変換する。

sub Start()
dim i as long
i = 10
Do While Range("g" & i) <> ""
        Call Module1.web_読込み
        Call Module1.不要行削除
        Call Module1.画像の置換
        Call Module1.タグの削除
        Call Module1.右セルに項目取出し
        Call Module1.保存処理
    i = i + 1
Loop
end sub

①web_読込み  ・・・・・・・ WEBページを開き、bodyのソースをシートに貼り付ける。
②不要行削除  ・・・・・・・ 明らかに不要な行は削除
③画像の置換  ・・・・・・・ WEB上で、テキストではなく画像で情報を伝えている場合の対処
④タグの削除  ・・・・・・・・ テキストのみにするので、タグ等は削除/その行は行削除。
⑤右セルに項目取出し ・・セットのデータが複数行に貼り付いているので、規則性を見つけて、1行のデータ(レコード)にする処理。
⑥保存処理  ・・・・・・・・・ 1行のデータになったら、それを集計するシートやブックに追記する処理。

※画像で表示される区分などの情報を取得しないのであれば、
 ③の処理は不要だと、もっと簡単な方法がある。
 この例では、③の処理があるので、ソース文(タグ付き)を取得しエクセル上で整形するようにしてみた。

続きを読む "VBAでWEBデータを取得する。"

| | コメント (0) | トラックバック (0)

2014年4月26日 (土)

エクセルで、ホームページを表示してみる。

定番のOfficeTANAKAさんのページで調べてみた。
http://officetanaka.net/excel/vba/tips/tips42.htm

>IEを高度に制御したいのなら、オートメーションでIEのインスタンスを使いましょう。
ということなので、このコードでいろいろやってみた。


国立国会図書館サーチで、「夏目漱石」を検索する。                               
    http://iss.ndl.go.jp/


その時のurl① ↓
http://iss.ndl.go.jp/books?any=%E5%A4%8F%E7%9B%AE%E6%BC%B1%E7%9F%B3&op_id=1&display=&ar=4e1f   

夏目漱石は、%E5%A4%8F%E7%9B%AE%E6%BC%B1%E7%9F%B3 に変換されていた。
http://www.tagindex.com/tool/url.html            ←でデコードしてみた。 「夏目漱石」と表示された。
ちなみに、上の①URLで、検索語を入れてみた   
http://iss.ndl.go.jp/books?any=夏目漱石&op_id=1&display=&ar=4e



vbaで、日本語をエンコードするコードを探してみた。       
    http://komet163.blog36.fc2.com/blog-entry-18.html       
       
検索語はB44に入力    夏目漱石       
エンコードした値    %E5%A4%8F%E7%9B%AE%E6%BC%B1%E7%9F%B3               
エンコードした値を含んだURL        http://iss.ndl.go.jp/books?any=%E5%A4%8F%E7%9B%AE%E6%BC%B1%E7%9F%B3&op_id=1&display=&ar=4e1f                        
※検索語は、タイトル・作者や出版社でヒットすれば、表示されるようだ。   
 以下のコードでエクセルでの入力値で、検索結果のページが表示された。
Sub 本の検索_国立国会図書館②()
Dim URL As String, IE As Object
Set IE = CreateObject("InternetExplorer.Application")
' B44セル値をエンコードし、B45セルに代入
Range("b45") = UrlEncodeUtf8(Range("b44").Value)
' B45セル値を含んだURL式をC46セルに予め作っている。
URL = ActiveSheet.Range("c46").Value
With IE
    .Navigate (URL)
    .Visible = True
End With
Set IE = Nothing
End Sub





       

続きを読む "エクセルで、ホームページを表示してみる。"

| | コメント (0) | トラックバック (0)

2014年3月18日 (火)

WEBページのtableデータを取得するVBA(Excel)

web上のテーブル・データをExcelの表にするVBAが、KEN3のページにありました。
http://www.ken3.org/vba/backno/vba119.html

少し、いじってみた。
sheet1,sheet2など、デフォルトのシート名の方が分かりやすかったかも
しれませんが、今自分で使っている作業ブックで、試してみたので・・・・・(-_-;)

続きを読む "WEBページのtableデータを取得するVBA(Excel)"

| | コメント (0) | トラックバック (0)