
別枠で同系統の質問となってしまい申し訳ありません。
http://oshiete1.goo.ne.jp/qa5661746.html
上記でご教授頂いたサンプルを実行しましたところ
順調に動いていたのですが、
以下のように同じ行に複数の取得対象が存在するパターンになると
正常に取得できなくて困っています。
index.html内
<a href="http://www.test.co.jp">テスト1</a><img src="image.gif" alt="イメージ"></a><a href="http://www.test2.co.jp>テスト2</a>|<a href="http://www.test3.co.jp">テスト3</a>
このように、同じ行に複数の記述がされている際
最後の物のみ取得してしまい(http://www.test3.co.jpが取得される)
前の物全て取得できない状態です。
全てを取得するようにするにはどのようにすればいいか、
すみませんがよろしくお願いします。
なお、ファイルを読み込んでファイル内容を別シートに出力し、
そこから抽出している形を取っています。
No.3ベストアンサー
- 回答日時:
のコードをおためし下さい。
ハイパーリンクのURLは、match.submatches.Item(0)に取得できますので、
Debug.Print match.submatches.Item(0)
などと改造してみてください。Accessで回答していますが、Excelでも動くと思います。
ご呈示の1行のファイルで試験したところ拾い出せました。
ただし、href="http://www.test2.co.jp>テスト2 のところはダブルクォーテーションが一個欠落していて誤動作しましたので修正して試験しました。
この回答への補足
非常に言葉足らずで大変申し訳ございません。
前回の条件として
<a href="**">の**を取得したい、と記述したのは
【http://~】だけではなく
【/index.html】
などと言ったハイパーリンクではない物も取得したいからでした。
例文が悪く大変申し訳ございません。
申し訳ございません、動作しない部分を見直して行ったところ、
タイプミスが原因でした。
ペーストをしてしまうと形式すら身につかないと考え
手動で行っておりました。
試しましたところ、無事動作するようになりました。
お忙しいところありがとうございました。
No.4
- 回答日時:
#3です。
パターンをご覧になりましたか?何処にもhttp://は出て来ません。下記のデータで問題なく取得できました。(自分の手柄ではなく、Microsoftの受け売りですが)<a href="http://www.test.co.jp">テスト1</a><img src="image.gif" alt="イメージ"></a><a href="http://www.test2.co.jp">テスト2</a><a href="http://www.test3.co.jp">テスト4</a><a href="/test4.html">テスト4</a><a href="./test5/test5.html">テスト5</a>
申し訳ございません、動作しない部分を見直して行ったところ、
タイプミスが原因でした。
ペーストをしてしまうと形式すら身につかないと考え
手動で行っておりました。
試しましたところ、無事動作するようになりました。
お忙しいところありがとうございました。
No.2
- 回答日時:
[回答番号:No.1] の DOUGLAS_ です。
>取得した「テキスト(ソースコード)」をそのまま エクセル の ワークシート に貼り付け
るよりも、最初から、当該 WEBページ を エクセル に読み込む方が手間が省けますか。。。
Sub TEST()
Dim HL As Hyperlink
Dim myURL As Variant
Dim i As Integer
Dim j As Integer
Workbooks.Open Filename:="http://oshiete1.goo.ne.jp/qa5661746.html"
j = ActiveSheet.Hyperlinks.Count
ReDim myURL(j - 1)
For Each HL In ActiveSheet.Hyperlinks
myURL(i) = HL.Address
i = i + 1
Next
ActiveWorkbook.Close SaveChanges:=False
Range("A1").Resize(j) = Application.WorksheetFunction.Transpose(myURL)
End Sub
この回答への補足
申し訳ありません、条件が抜けておりました。
ソースコードはローカルに配置してあります。
D:\test\ソース
配下に格納しています。
No.1
- 回答日時:
>別枠で同系統の質問
リンク先は拝見いたしました。
>マクロを用いてテキスト(ソースコード)よりURLを取得したい
とのことですが、「テキスト(ソースコード)」はどこに書いていらっしゃるのでしょうか?
>全てを取得するようにするにはどのようにすればいいか
結果オーライになりますが、取得した「テキスト(ソースコード)」をそのまま エクセル の ワークシート に貼り付けて、下記のコードを実行なさってみてください。
Sub TEST()
Dim HL As Hyperlink
Dim myURL As Variant
Dim i As Integer
Dim j As Integer
j = ActiveSheet.Hyperlinks.Count
ReDim myURL(j - 1)
For Each HL In ActiveSheet.Hyperlinks
myURL(i) = HL.Address
i = i + 1
Next
Sheets.Add Type:="ワークシート"
Range("A1").Resize(j) = Application.WorksheetFunction.Transpose(myURL)
ActiveSheet.Next.Select
Application.DisplayAlerts = False
ActiveSheet.Delete
Application.DisplayAlerts = True
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「取得先」という表現について
-
INIファイル
-
ps3で久しぶりにCDの音楽情報取...
-
ローカルのコンピュータ名を取...
-
ミュージックのアートワークを...
-
C#で特定LANアダプタの状態を取...
-
Wordでウィンドウハンドル(Hwn...
-
開始と終了を指定して、その間...
-
DTOとEntityの差は何ですか。
-
Dosブロンプトでtabを出力したい
-
WordでExcelデータを差込...
-
VBA内でのGetPixelを使用した時...
-
完全なセッション破棄をしたい
-
PHP4からPHP5へ移行した際、セ...
-
VB.NETからVBAマクロ(引数)を呼...
-
PHPでの画像の形式の変換
-
Worksheet_Changeについて
-
C言語で地図を描きたい
-
PLY yacc での IF 文実装
-
過去にVBAでの「シフト表の何日...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「取得先」という表現について
-
Excel VBA:特定の文字列以降(...
-
VB.NETでボリュームを取得・設...
-
EXCEL、マクロ-改ページ行番号...
-
VBAでPDFファイルの文書のプロ...
-
ps3で久しぶりにCDの音楽情報取...
-
ミュージックのアートワークを...
-
ローカルのコンピュータ名を取...
-
Yahoo! JAPAN IDを新規取得でき...
-
各クライアントマシンのログイ...
-
ドライブ文字からハードウェア...
-
VBAでPDFのアクティブページ番...
-
webサイトの参考資料:サイト名 ...
-
IEを使わないでhtmlテキストを...
-
format関数について
-
C# ASP.NET でIPアドレスからア...
-
(Win32)ファイルパスから物理ド...
-
【VBA】EXCELブックを開かずに...
-
ファイル名のリスト取得について
-
コンビニで住民票を取得した場...
おすすめ情報