• ベストアンサー

""の中身を取得する方法

WindFallerの回答

  • ベストアンサー
回答No.5

こんにちは。 全体像が書かれていない中で、途中の抜き出しで質問だから、なかなか口を挟みにくいのですが、#1~#3さんの回答とそのご質問者さんの反応をみていて、 「スマートな方法」というリクエストは、私には、抽象的でよく理解できませんが、VBAは、中身を見せることがありませんから、それなりに動けばよいような気がします。コードで、Coolと言わせるなんて、並大抵ではありません。 >wordのマクロだと >"[\(]([0-9]{1,2})[\)]" まあ、それは、正確にはWordのマクロではなく検索コマンドの一部ですが、Excelでは、必要とあれば、正規表現を使いますね。途中まで書いて、読み落としていたのですが、配列に入れるわけですね。 '// Dim buf As String Dim myArray() As String Dim i As Long Dim Matches As Object Dim Match As Object i = -1 buf = "ログソース" With CreateObject("VBScript.RegExp")  .Pattern = "\shref=""(http:[^""""]+)"   'パターンの正しい方法は知らない。以前、最短マッチ法の指摘はされたけれど、VBScriptではやっぱりうまくない。  .Global = True  .MultiLine = True  Set Matches = .Execute(buf)  For Each Match In Matches   i = i + 1   ReDim Preserve myArray(i)   myArray(i) = Match.SubMatches(0)  Next Match End With '// でも、一つだけ取り出すつもりなら、狙いを定めた後は、実際、Instr 関数や Mid 関数の方が楽ではないかな。だから、使い方によっては、Splitで大雑把に切っておいて、そこにHTTPアドレスが一つであるなら、後はループすれば、以下でも有効のはずです。実際、その方が多いかもしれませんね。 i = InStr(1, buf, "href=""http", vbTextCompare) j = InStr(i + i + Len("href="""), buf, """") PickUP = Mid(buf, i + Len("href="""), j - i - Len("href=""")) この通り3行で足りてしまうのです。

関連するQ&A

  • URL抽出

    指定したURLのソースから<A HREF="~">タグの"~"部分を抜き出してリスト化するようなURL抽出ツールを作りたいのですが、どのようにプログラムを書けばよいのかわからずに困っています。 わかるかた、回答のほどをよろしくお願いします。

  • ダイナミックHTMLの取得方法

    ブラウザでURLにアクセスすると電力を表示する装置があります。 電力の値だけを取り込んでファイルに保存したいのですが、 HTMLソースを取り込んで見ると、Javascriptで書かれたプログラムが含まれており、 WebサーバーにあるPearlのプログラムに10秒毎にアクセスして値を更新しているようです。 この更新された値をファイルに保存するにはどんな方法がありますか?

  • VBAでWEBページのURL抽出について

    エクセルのVBAにおいてWEBページのURLを抽出するマクロを考えております。 具体的に言うと、下記のようなwebページのタグがある中でhrefで参照しているURLを抽出したいと考えております。 <a class="" href="">あいうえお</a> GetelementByClassNameを使うことで文言の抽出はできるのですが、リンク先の抽出はできないのでしょうか?

  • inet コントロールを用いてHTMLソースのリンクを全て取得するには?

    お世話になります。 Inet.OpenURL("http://www.yahoo.co.jp") でhtmlソースは取得できたのですが <a href>タグの中のurlを全てとりだしてテキストファイルに保存するにはどうすればよいでしょう? いろいろ調べてみたのですがサンプルプログラムがみつからず困っています。詳しい方しえてください。

  • yahooの検索ランキングの取得方法

    yahooの検索ランキングの取得方法 PHPにより、正規表現を使用してyahooの検索ランキングを取得しようと考えています。 googleやbingについては問題なく取得できたのですが、yahooのみうまく取得できません。 以下詳細を記述します 1.file_get_contents()により、 (http://search.yahoo.co.jp/search?ei=UTF-8&fr=top_ga1_sa&x=wrt&p=キーワード) のURLのファイルを取得 2. 1.で取得したファイルから正規表現により<div class="hd">というタグを検索 し、タグからタグまでの文字列を順番に配列に保存 3.取得した配列から指定キーワードを検索し、マッチした配列の順番を取得し、ランクとして表示 取得できないのがyahooだけであることからURLの指定ミスかと思ったのですが、ブラウザで確認すると 表示されています。また、検索するタグの問題かと思い別のものをしてみても問題は解決されませんでした。 どなたかお詳しい方がいらしたら是非ともご教示よろしくお願い致します。

    • ベストアンサー
    • PHP
  • 一つの行にURLが複数ある場合の、URL抽出方法は?

    htmファイルの中から、リンクされたURL情報を抽出するのが今回の目的です。 ご相談したいのは、URL情報が一つの行中に複数ある場合の抽出方法です。 ちなみに「一つの行にある<a href>リンクが一つだけ」の場合ですと、正規表現 <a +href=('|\").*('|\") *> でURLデータを正しく抽出できるところまで来ています。 ですが一つの行にある<a href>リンクが2つ以上あった場合は、最長一致のルールに従って、うまく抽出できません。 具体的に申し上げると、 ケース1:<a href="www.hoge.htm">ほげ</a> <a href="www.hoge.htm"> が抽出できる。 ケース2:<a href="www.hoge.htm">ほげ</a><a href="www.hogehoge.htm">ほげほげ</a> <a href="www.hoge.htm">ほげ</a><a href="www.hogehoge.htm"> が抽出される。(本当は2つを別々に取り出したい)

  • エクセル2003VBA 新規ブックを作成、保存の時に

    いつも勉強させていただいております。 今回、VBAで以下の事をできるのかな?と思い質問させていただきました。 まず、VBAで以下の動作を作成しました。 Aファイル、データーベースCSVファイル Bファイル、VBA記述ファイル 1)Bファイルから、Aファイルを開いて、検索、条件に合うデーター を配列で抽出。 2)新規ブックを追加 3)新規ブックに抽出したデーターを書き出し と言うVBAを作成しました。 で、質問なのですが、新規ブックは保存するか、しないかがその時々に よって任意でするため、VBAで保存の所までは作成していないのですが 、保存する場合、ファイル名に規則性を持たせたいため、ファイル保存 をしたときに表示させる初期ファイル名をBファイルのVBAから変更 させる事はできるのでしょうか? 新規ブックを保存するとき、初期ファイル名は「Book1.xls」となって いると思うのですが、この値を変更することってできますでしょうか? もし可能であれば、ヒントや参考になるHPなど教えていただけないで しょうか。

  • VBAでbmp画像をASCIIデータとして開く

    VBAでbmp画像ファイルをASCIIの配列データとして開き、 青色を全て赤色に変更して、jpegファイルとして保存するようなプログラムを書きたいのですが bmpファイルををASCIIの配列データとして開くためにはどのような記述を使えば良いでしょうか?

  • grepの方法について

    私は現在、500ファイル近いjspファイルもしくはhtmlファイルから hrefのリンクだけを抽出する作業を行っています。 下記コマンドでgrepをかけた場合、 後ろにつながる文字列まで抽出されてしまいます。 grep -i -e "href=" ソースファイルとしては、 <a href="ファイルパス.html" target><img src=""> というように、hrefの後ろにつながって 他のタグが記述されてしまっていますが、 hrefの"ファイルパス.html"のみを抽出したいのです。 どうすればよいでしょうか。 お手数かと思いますが、 宜しくお願いいたします。

  • 複数のファイルからの文字列の抜き出し方について教えて下さい。

    VBAとC言語の基本的なことは分かりますが、VBAは昔少しだけやっただけでほとんど分かりません。 100個くらいあるHtmlファイルから指定した行に書かれている文字列をコピーしてそのHtmlファイルの名前を自動で書き換えてくれるプログラムを作りたいのですが、どのようにすれば良いのでしょうか? 100個も同時にファイルを開くと非常に重くなると思うので、順番に文字列を抽出するようなものの方が良いと思うのですが、 何から始めて良いのか分かりません。 VBの基本書を頭から順番に読むというのはいま時間がないので、基本的な手順だけ教えて頂けないでしょうか? よろしくお願い致します。