• ベストアンサー

VBAでIEの特定ソースをExcelシートに出力

VBA初心者です。 この度住所録を作成することになりVBAで操作しようと考えております。 http://map.japanpost.jp/pc/syousai.php?id=300197019000 このURLの店舗名・住所の部分を抜き出しExcelシートに出力したいと考えています。 そしてこの要領で残りの店舗分もソースのフォーマットは一緒なので取得したいと考えております。 コードの書き方がわかりませんので、教えて頂けませんか?よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • Meegeren
  • ベストアンサー率44% (204/459)
回答No.2

これでweb上のテキストデータは取得できます Sub Macro() With ActiveSheet.QueryTables.Add(Connection:= _ "URL;http://map.japanpost.jp/pc/syousai.php?id=300197019000", Destination:= _ Range("$A$1")) .Name = "syousai.php?id=300197019000" .FieldNames = True .RowNumbers = False .FillAdjacentFormulas = False .PreserveFormatting = True .RefreshOnFileOpen = False .BackgroundQuery = True .RefreshStyle = xlInsertDeleteCells .SavePassword = False .SaveData = True .AdjustColumnWidth = True .RefreshPeriod = 0 .WebSelectionType = xlEntirePage .WebFormatting = xlWebFormattingNone .WebPreFormattedTextToColumns = True .WebConsecutiveDelimitersAsOne = True .WebSingleBlockTextImport = False .WebDisableDateRecognition = False .WebDisableRedirections = False .Refresh BackgroundQuery:=False End With End Sub でも、webとVBAでは世界が違いますので、行指定等はできません 編集については別のコードを書く必要があります ちなみにVBA初心者であれば、「マクロの記録」機能を有効活用することをお奨めします このコードも「マクロの記録」機能を使用して取得したものです

noname#223693
質問者

補足

ありがとうございます。 実行しましたら上手くエクセルに出力できました。 出力部分を郵便局名と住所だけ出力したいと考えています。 コードどこを治せばよろしいのでしょうか? そして、全部の郵便局を出力したい場合はどのようにすればよろしいのでしょうか? 何もわからなくてすみませんが、教えて頂けませんか?

その他の回答 (3)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.4

例示されたURLは1郵便局のもので、その中に多数行の表らしい物はない。 何がしたいのか。したいことをここに書きたくなくて、適当に例を探がして、挙げたのか。 文章的なWEBをエクセルシートに持ってきても、望みの情報がある個所を抜き出すのは、 「VBA初心者です。」には難しいのではないか。郵便局名の部分は、テーブの体裁さえしてないのではないか(たとえばHML分の中で、テーブルタグを使っているような) 「この要領で残りの店舗分も」となると、エクセルにデータを取り込む作業も繰り返しとなり、文章全体の長さも違い、別シートにとりこむとかになるが、多数シートを繰り返し扱うコードなどつくった経験はあるのか。複数の郵便局分を1シートの下方に積み重ねていくにしても、そういうコードを作ったことがあるのか。 「ソースのフォーマットは一緒なので」というのは、考えが甘いと思う。 10郵便局程度なら紙にメモして、エクセルに入力する方が、勉強の時間、質問の時間など考えたら早い。もっと勉強してからの課題だろうとおもう。 Googleで「WEBクエリ」で照会する、とか 「IE VBA」で照会して、勉強のこと。 後者に関しては、2冊市販の本が出ている。購入して読むとか。

  • Meegeren
  • ベストアンサー率44% (204/459)
回答No.3

>コードどこを治せばよろしいのでしょうか? 前の回答の「End With」の後ろに下記コードを追加してください Worksheets(2).Cells(1, 1).Value = Cells(10, 1).Value Worksheets(2).Cells(1, 2).Value = Cells(14, 1).Value Worksheets(2).Cells(1, 3).Value = Cells(15, 1).Value 2番目のワークシートのA1、B1、C1のカラムに店舗名、郵便番号、住所が転記されます >そして、全部の郵便局を出力したい場合はどのようにすればよろしいのでしょうか? それは無理です なぜなら、回答のコードは特定のWebページ(ID「300197019000」)をテキストデータを呼び込むだけですので 全部の郵便局のIDがわかっていないと、IDを入力引数にしてプログラムに引き渡すこともできないからです

  • FEX2053
  • ベストアンサー率37% (7991/21371)
回答No.1

いちいち作らんでも、もうできてると思いますが? http://homepage1.nifty.com/tabotabo/yubin/kyokumei.htm http://www.kit.hi-ho.ne.jp/omachi/yubin/kani/ 業務で使う場合、公的なモノは公式に照会すると、案外簡単に データを分けてくれますよ。 プログラミングの練習に使いたい、と言われるなら、また話は別ですが。

noname#223693
質問者

補足

プログラムの練習で使いたいです。 コードを教えて頂けませんか? よろしくお願いします。

関連するQ&A