VBAで文字列からURL部分だけを抽出する方法
未読分:0件
昨日以降(0) 2日前以降(0) 3日前以降(0) 4日前以降(0) 5日前以降(0)
近田 伸矢, 植木 悠二, 上田 寛
IEのデータ収集&自動操作のプログラミング本はこの1冊だけ!IEの起動やポップアップウィンドウ、表示を制御する基本的なコードはもちろん、テキストボックスやラジオボタン、表、ハイパーリンクなどのHTML部品を制御する方法など、自動操作に欠かせないノウハウを丁寧に解説。
Message#4 2023年9月25日(月)11時35分 From: a | 返事 削除 変更 |
Message#3 2014年9月16日(火)23時56分 From: 水円 | 返事 削除 変更 |
正規表現でやる方法がまったく思いつきませんでした。 なるほどといった感じです。 データをセルに入れる場合は、iがせっかくあるので以下のように設定してみました。 For i = 0 To (objMatches.Count - 1) cells(i+2,2) = objMatches.Item(i).value Next 実行したらうまく処理ができましたので、感謝です。 |
Message#2 2014年9月14日(日)01時30分 From: 管理人 | 返事 削除 変更 |
VBAのIE制御でデータ抽出はうまくいっているということなので、その部分については、割愛します。 特定のタグに一意のキーワードがない場合や、今回のように文章の中に抽出項目がある場合は、正規表現を利用して抽出する方法が一般的です。 今回は、VBAでURL部分だけを抽出したいということですので、以下のサンプルコードを試してみてください。 【プログラム】 Sub sample() '正規表現オブジェクト作成 Set objReg = CreateObject("VBScript.RegExp") strValue = "iPS細胞(人工多能性幹細胞)から作った細胞が9月12日に世界で初めて患者に移植された。http://news.yahoo.co.jp/ 。2006年に京都大iPS細胞研究所長の山中伸弥教授がマウスでの開発成功を発表してから8年のことである。" With objReg .Pattern = "http(s)?://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?" 'パターン .IgnoreCase = True '大文字と小文字を区別しない .Global = True '文字列全体を検索 End With Set objMatches = objReg.Execute(strValue) For i = 0 To (objMatches.Count - 1) Debug.Print = objMatches.Item(i).value Next Set objReg = Nothing End Sub 【処理結果】 http://news.yahoo.co.jp/ ※今回はDebug.Printを利用していますので、こちらを指定のセルへ変更してください。 |
Message#1 2014年9月13日(土)09時38分 From: 水円 | 返事 削除 変更 |
おはようございます。 VBAを使ってあるサイトの紹介文をセルに入力はできたのですが、その紹介文の中に書いているサイトURLだけを抽出することができないか考えています。 以下の紹介文になります。 どのようにURLだけを抽出すればよろしいでようか? 「iPS細胞(人工多能性幹細胞)から作った細胞が9月12日に世界で初めて患者に移植された。http://news.yahoo.co.jp/ 。2006年に京都大iPS細胞研究所長の山中伸弥教授がマウスでの開発成功を発表してから8年のことである。 」 |
昨日以降 2日前以降 3日前以降 4日前以降 5日前以降