• ベストアンサー

VBAでHTMLのtitleタグの中身を抽出してA1に入れたい

VBAでHTMLのtitleタグの中身を抽出してA1に 入れるにはどうすればよいのでしょうか? 例:<title>Yahoo! JAPAN</title>のYahoo! JAPANをA1に入れる 使用OS:Windows XP 使用ソフト:Microsoft Excel 2003 ご存知の方がおられましたらご回答をよろしくお願いします。

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

  • ベストアンサー
  • lark_0925
  • ベストアンサー率63% (37/58)
回答No.1

下記のコードでWin2000&Excel2002では、正常にTitleが取得できました。 '============================================================= Sub main()   Dim IE   Set IE = CreateObject("InternetExplorer.Application")   With IE    .Visible = True    .navigate "http://www.yahoo.co.jp/"    Do While .Busy = True Or .readyState <> 4      Loop    Range("a1").Value = .document.Title    .Quit    End With   Set IE = Nothing End Sub

nana_watuki
質問者

お礼

早速やってみたところMicrosoft Excel 2003でも正常にTitleが取得できました。 ご回答いただきどうもありがとうございました。

関連するQ&A

  • HTMLタグの中味抽出

    HTMLのタグの中味を抽出する正規表現として、以下の形を学びました。 [^<]+?(?=>) この正規表現で以下のHTML文を処理すると、 <tag_nakami_1><tag_nakami_2>title_text</tag_nakami_1></tag_nakami_2> 以下の結果が出ました。 tag_nakami_1 tag_nakami_2 /tag_nakami_1 /tag_nakami_2 ですが、なぜ、「title_text」の部分がうまく取り除かれたのかがわかりません。 <tag_nakami_1><tag_nakami_2> まで処理がすんで、次は title_text</tag_nakami_1> が処理対象の文字列となるのでは無いでしょうか?その場合、末尾の > より前の部分、title_text</tag_nakami_1 から < のみが除かれた文字列、title_text/tag_nakami_1 が抽出される、つまり以下のような結果が出そうに思えます。 tag_nakami_1 tag_nakami_2 title_text/tag_nakami_1 /tag_nakami_2 ですが実際はそうなりません。 これはなぜなのでしょうか……。

  • ExcelのVBAでHTML内の特定のタグの出現回数を調べたい

    たとえばYahoo!JapanのサイトのHTMLのTDタグの出現回数を調べる場合 下記のVBAに何を付け加えればよいのでしょうか? Sub tagCount() Dim cnt As Integer Dim IE As Object Dim HTML As String Set IE = CreateObject("InternetExplorer.Application") IE.Navigate ("http://www.yahoo.co.jp/") While IE.busy: Wend While IE.Document.readyState <> "complete": Wend HTML = IE.Document.body.innerHTML IE.Quit 'td_count = ここの部分がわかりません。 '文字列の出現回数をカウントする関数はないのでしょうか? MsgBox td_count End Sub ご存知の方がおられましたらご回答をよろしくお願いします。 使用OS:Windows XP 使用ソフト:Microsoft Excel 2003

  • getAttributeによるHTMLのタグ抽出について

    web上にあるHTMLで書かれた文書から、タグ別に抽出しようと思っています。以下にあるのはプログラムの一部です。 <a href~のタグだときちんと抽出できるのですが、<img src~から始まるタグでは抽出できなかったのです。どこがいけないのでしょうか? よろしくお願いします。 . . . public void handleStartTag(HTML.Tag tag, MutableAttributeSet attr, int pos) { if (tag.equals(HTML.Tag.A)) { href[i] = (String) attr.getAttribute(HTML.Attribute.HREF); i++; } else if (tag.equals(HTML.Tag.IMG)) { src[j] = (String) attr.getAttribute(HTML.Attribute.SRC); j++; } else { } } . . .

    • ベストアンサー
    • Java
  • ExcelのVBAでHTMLのソースのタグの部分を小文字で取得したい

    HTMLのソースコードを取得する下記のVBAを実行すると タグの部分が大文字(<H1>等)になってしまいます。 どうすれば小文字のタグのまま取得することが出来るのでしょうか? 使用OS:Windows XP 使用ソフト:Microsoft Excel 2003 ご存知の方がおられましたらご回答をよろしくお願いします。 Sub sample() Set IE = CreateObject("InternetExplorer.Application") IE.Navigate ("http://www.yahoo.co.jp/") While IE.busy: Wend While IE.Document.readyState <> "complete": Wend HTML = IE.Document.body.innerHTML MsgBox HTML IE.Quit End Sub

  • HTMLタグ内文字を抽出するには

    HTMLタグ内の特定<title>タグ内文字列のみをエクセルマクロで抽出する方法はありますか? またエクセルのURL一覧の横に結果を表示させたいです。 宜しくお願い致します。

  • VBAを使ってHTMLソースから特定の文字列を抽出したいと思っています

    VBAを使ってHTMLソースから特定の文字列を抽出したいと思っています。 正規表現を利用してタグに挟まれた文字を抽出したいのですがうまくいきません。 タグごと抽出する方法でも構わないので教えてください。 例えば <a href="www.yahoo.com△">○○○</a>   ・・・<1> ※△は(www.yahoo.com)+(半角数字1文字) ※○○○は1文字以上の全角文字 このようなパターンの文字列(<1>を丸ごと)を抜き出すには どのような正規表現を書けばよいでしょうか? 単に<a href ではじまって </a>  で終わる文字列であれば <a href.*</a> で良いと思うのですが、もう少し範囲を絞れば目的の文字列だけを抽出できるので ぜひ実現させたいと思っています。宜しくお願いします。

  • A1に数値を入力後、VBAのMsgboxでその数値が表示されるようにしたい

    A1に数値を入力後(数値を入力したあとEnterキーを押すと) VBAのMsgboxでその数値が表示されるようにするにはどうすればよいのでしょうか? 使用OS:Windows XP 使用ソフト:Microsoft Excel 2003 ご存知の方がおられましたらご回答をよろしくお願いします。

  • YAHOO!ブログのHTMLタグ

    YAHOO!ブログで、書いた記事を修正したいと思うのですが、 HTMLタグを表示するにはどうしたらよいのでしょうか。 レイアウト設定で、「HTML使用」にしてあるのですが…。 ちなみに、私はアクセス解析を設置しようとしているのですが、そのためには本文中にタグを挿入する必要があります。

  • VBAを使ってHTMLソースから特定の文字列を抽出

    ExcelでVBAを使ってHTMLソースから特定のデータを抽出したのですが、VBAは浅学なのでアドバイスを頂きたいです。 例えば、ここサイトの「 http://www.nankankeiba.com/calendar/201304.do 」 <em></em>タグ内の<a href="URL">のURLだけを取得して並べたいのですが、可能でしょうか。 この部分。(http://uproda.2ch-library.com/799465NHT/lib799465.jpg) ここ辺りが参考になりそうなのですが、<em></em>タグ内に限定する方法がわかりません。詳しい方いましたら、アドバイスよろしくお願いします。 http://okwave.jp/qa/q5919101.html 理想としてはこんな感じで取り出せるようにしたいです。(「program/20130407200101.do」の部分だけでも良い) http://uproda.2ch-library.com/7995052y7/lib799505.jpg

  • RubyのHTMLパーサーで複数のタグを抽出したい

    現在、Rubyを用いて あるWebページから特定のタグの要素を抽出して テキストデータに出力したいと思い、プログラムを書いているのですが、 途中で行き詰ってしまいました。 ちなみにHpricotやNokogiriといったHTMLパーサーを試してみました。 パーサーを使うのは初めてです。 例えば以下のようにHTML文書に抽出したい部分がDIVタグとPタグに囲まれていた場合、 ===================================== ・・・ <div class="content"> <div class="header">不要部分</div> <div class="title">抽出したい文字列1</div> <div class="subtitle">抽出したい文字列2</div> <div class="subtitle">抽出したい文字列3</div> <p class="paragraph">抽出したい文字列4</p> <p class="paragraph">抽出したい文字列5</p> <div class="comment">抽出したい文字列6</div> <div class="footer">不要部分</div> </div> ・・・ ===================================== このHTMLからまずは 抽出したい文字列1 抽出したい文字列2 抽出したい文字列3 抽出したい文字列4 抽出したい文字列5 抽出したい文字列6 といった出力が得たいのです。 プログラムも書いてみました。 ===================================== #ドキュメント全体を取得(dataにはHTMLの文字列が入っている) html = Hpricot(data) #内容部分(contentクラスのdiv)を取得(CSSセレクタで記述) content = html/"div.content" ===================================== ここまでは良いのですが、 そのあと、div要素を取り出すだけであれば headerクラスと、footerクラスを抽出しないように ===================================== (content/"div:not(.header):not(.footer)").each{ |line| puts line.inner_html } ===================================== とすることで、 抽出したい文字列1 抽出したい文字列2 抽出したい文字列3 抽出したい文字列6 が得られますが、pタグをカンマでdivの前に追加して ===================================== (content/"p,div:not(.header):not(.footer)").each{ |line| puts line.inner_html } ===================================== のようにすると、 抽出したい文字列4 抽出したい文字列5 抽出したい文字列1 抽出したい文字列2 抽出したい文字列3 抽出したい文字列6 のように出力されます。 同様にdivの後にpを追加し ===================================== (content/"div:not(.header):not(.footer),p").each{ |line| puts line.inner_text } ===================================== のようにすると 抽出したい文字列1 抽出したい文字列2 抽出したい文字列3 抽出したい文字列6 抽出したい文字列4 抽出したい文字列5 のようになってしまいます。 つまり、複数のタグを指定すると、指定した順序で抽出されるようです。 代わりに子供すべてを列挙するchildのようなものがあるかと、調べてみたのですが、 どうやらそのような書き方はないようです。 複数のタグを含む場合にはHTMLパーサーでは解析できないのでしょうか。 パーサーは抽出時に順番を保証はしてくれないのでしょうか。 あきらめて、正規表現で抽出しようと思いましたが、 ===================================== <div class="comment"> <div class="comment_header">ごちゃごちゃ</div> <div class="comment_body">抽出したい要素6</div> </div> ===================================== などDIVが入れ子となっている場合に、 非常にややこしく感じたので お手上げ状態です。 どのように、解決できるでしょうか。 よろしくお願いします。

    • ベストアンサー
    • Ruby

専門家に質問してみよう