• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:excel2007マクロで特定URLを抽出したい)

Excel2007マクロで特定URLを抽出する方法

このQ&Aのポイント
  • Excel2007のマクロを使用して、特定のURLを抽出する方法について教えてください。
  • 具体的には、2行ごとのテキストデータから「oshiete」を含むURLを抽出し、エクセルのG列に書き込んでいく方法を知りたいです。
  • さらに、エクセルファイルは1週間ごとに新しいものを作成し、B列には書き込み日時を記録したいです。

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

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.2

「すぐに回答ほしいです」になってる質問に、ほんとにすぐ回答しても、一週間も放置されたら、普通はそんな質問はもう見に行きませんよ。 だから、上手くいかなかったという書き込みも今やっと知りました。 余計なことを書きましたが、それはさておき、最後にSheet3が表示されるのは、それが最後のシートなんでしょ?そのシートの後に作業用のシートを挿入し、そこにテキストを読み込んで作業し、終了後にその最後シートを削除したから、残った最後のSheet3が現れたわけです。 コードの最後を 途中略 Application.DisplayAlerts = False ws.Delete Application.DisplayAlerts = True Sheets("Sheet1").Activate End Sub にすれば防げますが、問題は書き込まれる先のSheet1が空白のままだということですね? マクロを実行すると書き込むような動作が見えるとのことですので、TXTファイルからの読み込みはできているはずだと思います。そうなると、残る原因は、対象としたTXTファイルの中に"oshiete"という文言が入ってなかったことぐらいしか考えられません。 多分、質問の"oshiete"は仮の言葉で、本当は違う単語だと思いますが、その単語にVBAのコードを修正するとき、ミスタイプしてませんか?

nyan_chiki
質問者

お礼

できました!ありがとうございました。 確認したところ"oshiete"に該当する部分が、当方が不在の間に変更になっていました。 文言を書き換えたらできました。 おっしゃるとおりで、突然同僚の代わりに出張になってしまい、 お返事が遅れてしまいました。 大変申し訳ありませんでした。 本当に助かりました。ありがとうございました。

その他の回答 (1)

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.1

以下のような、拡張子.txtのテキストファイル(memo帳)から「oshiete」を含むURLのみを取り込む一例です。 取り込み先は、このマクロを記述したBOOKのSheet1です。 見出し1 http://yahoo.com/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.jp 見出し2 http://google.com/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.jp 見出し3 http://oshiete.com/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.jp 見出し4 http://yahoo.co.jp/oshiete/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.jp 見出し5 http://google.com/aaa/oshiete.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.com Sub test01()   Dim myFn   Dim x As Long, i As Long   Dim myC As Range   Dim ws As Worksheet   myFn = Application.GetOpenFilename(FileFilter:="TXTファイル(*.txt),*.txt", Title:="TXTファイルを選択してください。")   If myFn = False Then     MsgBox "きゃんせる", , "Σ( ̄ロ ̄lll)  "     End   End If   Set ws = Sheets.Add(After:=Sheets(Sheets.Count))   With ws.QueryTables.Add(Connection:="TEXT;" & myFn, Destination:=ws.Range("A1"))     .TextFileColumnDataTypes = Array(2)     .Refresh BackgroundQuery:=False     For Each myC In .ResultRange     If InStr(myC.Value, "oshiete") > 0 Then       i = i + 1       Sheets("Sheet1").Cells(i, "G").Value = myC.Value       Sheets("Sheet1").Cells(i, "F").Value = myC.Offset(-1).Value       Sheets("Sheet1").Cells(i, "B").Value = Format(Now, "yyyy/mm/dd hh:mm:ss")     End If     Next myC   End With   Application.DisplayAlerts = False   ws.Delete   Application.DisplayAlerts = True End Sub

nyan_chiki
質問者

お礼

ありがとうございます! お返事が遅くなってしまい、申し訳ありません。 こんなにすぐ回答いただけるなんてびっくりしました。 さて、エクセル2007でマクロを実行してみたのですが、うまく書き込みが できませんでした。 sheet1の状態でマクロを実行するとURLを書き込むような動作が 走っているように見えるのですが、最後はsheet3を開いた状態で 終了してしまいます。シートは全て空白の状態です。 もしかしたら当方の設定か何かでしょうか。。

関連するQ&A

専門家に質問してみよう