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

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

excel2007マクロで特定URLを抽出したい

初めてお世話になります。 Excel2007のマクロについて質問です。 【元ファイル】 1行目:見出し1 2行目:http://yahoo.com/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.jp 1行目:見出し2 2行目:http://google.com/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.jp 1行目:見出し3 2行目:http://oshiete.com/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.jp 1行目:見出し4 2行目:http://yahoo.co.jp/oshiete/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.jp 1行目:見出し5 2行目:http://google.com/aaa/oshiete.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.com 上記のような形式の数十行のテキストファイル (アウトルックのメール本文からメモ帳などに張り付けを想定)が素材です。 【ご質問】 上記のような2行ごとのテキストの中から「oshiete」を含むURLのみを エクセルのG列、その直上の見出しをエクセルのF列に書き込んでいきたいのですが、 どのようなマクロを書けばよろしいでしょうか。 特徴としてはURL部分がかなり長いです。可変ですが、半角で130~140文字くらいあります。 途中切れなどがないようにしたいと考えております。 この作業は日次で繰り返し、excelファイルは1週間単位で新しいものを作成します。 可能であれば、B列あたりに 書き込み日時(yyyy/mm/dd)も持たせられれば最高です。。 excelの関数や操作などはそこそこ理解できるのですが、マクロは全くの初心者です。 詳しい方にご教示いただければ大変うれしく思います。 よろしくお願いいたします。

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

  • ベストアンサー
  • 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

  • オートフィルで抽出後削除するマクロ

    いつもお世話になっております。 あるエクセルの表(1行目見出し、2行目以降データ)で、 A列は1~10がランダムに入っています。 (約4,000行、作業の度に変化します) オートフィルでA列を『2以上』で抽出、 (ここまでのマクロは判ります) 見えてる行を全削除(1行目の見出しは取っておく) はどのようなマクロを記述したらいいでしょうか? よろしくお願いいたします。

  • マクロについて

    毎週、複数のテキストファイルを1つずつ開いて データをコピーしてエクセルに張り付ける作業があり 時間がとてもかかってしまいます。 マクロを調べても分からず、どうかお力を貸してください。 フォルダ内にテキストファイルが50個あります。 エクセルの1つのSheetに、フォルダ内テキストファイルを 下記のようにデータを1つにまとめたいです。 テキストファイルのデータは1行目~4行目までデータが入っていたりいなかったりです。  A列             B列         C列        D列         E列 ファイル名1.txt     データ1行目   データ2行目    データ3行目   データ4行目 ファイル名2.txt      データ1行目   データ2行目    データ3行目   データ4行目    ・    ・    ・ 以上、宜しくお願い致します。

  • マクロを使ってテキストを抽出したい?

    エクセルのマクロを使ってテキストを抽出したい? ある1つのCSVデータがあります。エクセルで開いてみるとA列からU列までデータがびっちり入っています。 F列の各セルにはテキストを含むhtmlタグや%%NL%%やスペースなどあります。 質問なのですがF列をテキストだけに変換(抽出)したいです。 そのようなマクロを教えていただけないでしょうか?

  • マクロで可能でしょうか??

    初めまして ken2308といいます。 Excelは有る程度、使えるのですが 業務上マクロを覚えることになりました。 マクロに関しては全くのシロウトです。 Excelのマクロで以下のような事をやろうと思っておりますが Excelのマクロでは対応は可能でしょうか?? 【例】 Excelファイルが2つあります。 このファイルの大きさが【50列】×【50行】あり 【列】は飛び飛びで20列ほど非表示にており 【行】は複数のセルを結合して有ります。 このファイルを1つのファイルにしたいのですが Excelのマクロでは対応は可能でしょうか?? 自分としては以下のマクロを作成すればよいと 思っているのですが・・・ (1)列・行ともに非表示⇒表示にする。 (2)結合しているセルを解除戻す。 (3)2つのファイルをコピペする。 (4)貼り付け後、不要な列を削除する。 ※このマクロがうまく行ったら、上記で出来たファイルから  ピボットテーブルを作成するつもりです。

  • URLからIPを調べるマクロ

    指定したURLのIPを調べたいのですが、 数が多くて手動でやるのは難しいです。 A列に複数のURLの羅列があり、 その隣に、URLのIPを記入させたいです。 これは、マクロでできますでしょうか? そのマクロは、どのような記述になりますでしょうか? エクセル2016です。 よろしくお願いいたします。

  • Excel2007でのマクロの設定について

    Excelのマクロについて質問です。 Excel2007でマクロを設定したいのですが以下の作業はマクロ化出来ますか? 1.特定の文字列を含む行の削除   例:(D11に特定の文字列があった場合、11行を全て削除する) 2.特定の文字列を含む行のうち、一部セルの変更   例:(A列に日付、B列に名前、C列に金額がある場合、B列を検索して該当した名前の列の日付のみ既存の日付の前日にする)   また、これは同時に複数の検索が出来ますか? ご回答お待ちしております。

  • 秀丸マクロでマクロのURLを開く方法

    秀丸マクロでマクロに組み込んだURLをブラウザーで開く方法を 教えてください。 テキストには 何も書かれていない時にです。 例 http://oshiete.goo.ne.jp/ OSはXPで 既定のブラウザーはGoogle Chromeです。

  • Google検索をして、その下に検索結果(URL)

    A列1行から、ずっと右へキーワードが記入されています。 調べたいキーワードは、400近くあります。 その1行目にあるキーワードをGoogle検索をして、 検索結果のURLだけを、そのキーワードの下に表示させたいです。 検索結果は全部で10ページくらい、大体100個のURLになるかと思います。 (youtube動画や広告などは含めないです) このようなことは、Excelのマクロでできるでしょうか? できるとしたら、どのようなマクロの記述になるでしょうか? Excel2016です。 よろしくお願いいたします。

  • URLに含まれる可能性がある文字列は?

    こんにちは、よろしくお願いいたします。 ※カテゴリーが分からなかったのでこちらに質問させていただきました。 カテ違いならご指摘下さい。 複数行のテキストファイルの内容からURLを抽出するエクセルVBAを作成しようとしています。 (質問の趣旨はエクセルVBAについてではありません) 各行の内容はURLのみの行、URLが他の文字列に挟まれている行、URLは全く含まれていない行 があります。 URLがハイパーリンクされないようにするため、あるいはURLとなされないようにするために ttpやtpで始まるものは無視してよいです。 「ht tp」や「h ttp」としたものはURLとみなします。(スペースを削除するので問題とならない) 問題となっているのは、httpが含まれると判断した行を「http」で区切った右側のどこまでを URLと看做すか、です。 そこでネット検索してみましたが、「URLで使用できない文字列」というのはいくつか見つかり ましが、たとえば、予約語なのでURLに使用できない文字列は使用できないだけであってURLに は含まれる可能性があります。 「URLに含まれる可能性がある文字列」を調べたいのですがネット検索で見つかった物は明確 に示したものが見つからなかった(検索の仕方が悪かった、あるいは明確に示したものがあって も見方が悪くて見落としていた、というのもあるかと思います)ので開発者や詳しい者でなくて も理解できるように書かれたHPがあれば紹介していただきたいです。直接解説していただくの は大いに歓迎します。 いままでネット検索して見たことがあるページです。 見てもいまいち理解できませんでした。 http://datatracker.ietf.org/doc/rfc3986/ http://datatracker.ietf.org/doc/rfc3986/?include_text=1 http://jbpe.tripod.com/rfcj/rfc2396.ej.sjis.txt http://okwave.jp/qa/q247115.html http://www.ipentec.com/document/document.aspx?page=web-url-invalid-char&culture=ja-jp http://www.ipentec.com/document/document.aspx?page=web-url-invalid-char&culture=ja-jp ↑を見た限りでは、URLに含まれる可能性がある文字列は 問題なく使える文字列 A~Z A~z 0~9 使用可能な文字列 - _ . ! * ' ( ) 予約語として定義されている文字 使用できるがディレクトリ名やファイル名には使用できない ; / ? : @ & = + $ , % ところが、 >URLに含めることのできない文字 >以下の文字はURLに含まれない文字です。 \ ' | ` ^ " < > ) ( } { ] [ と書いてあり、 ) ( は「使用可能な文字列」と「URLに含めることのできない文字」 の両方に書かれており混乱しております。 結局のところ、URLに含まれる可能性がある文字列が把握しきれ ておりません。 ご教示よろしくお願いいたします。

  • excel2010マクロについて助けてください!!

    仕事でなりゆきでマクロを使用したいのですが、どなたかマクロを作っていただけませんか? 【内容】 下記のような管理ファイルがあります。 管理ファイルの各項目に背景色を染めて違う別の一覧ファイルに染めた管理ファイルの項目を 抽出したいというものです。 ・管理ファイルは、列見出は、01~10までありそれぞれ下に「歳(1)(2)」「視角(1)(2)」「寿命(1)(2)(3)」「顕」という項目があります。 ・行見出は、A1~A7、B1~B7がJまであります。 ・抽出する見出は、全部ではなく、歳(1)(2)と視角(2)と顕のみです。 ・基本、管理ファイルは、色を手作業で染めるだけで文字は、入りません。 ・管理ファイルに今回だけ手入力で染めたモノだけを抽出したいので管理ファイルの空いてる箇所にマクロボタンを作成して、色を染める→ボタンを押す→一覧に反映みたいな形にしたいです。 ・一覧ファイルは、別のexcelファイルで各シート名が歳一覧、視角一覧、顕一覧になっていて、各項目の箇所にデータを抽出したいです。 ・一覧ファイルは、すべて同じ作りでアドレスの項目の所にデータを抽出したいです。 画像のアドレスは、H3、I3ですが、実際会社のファイルは、H6、I6からです。 わかりにくいかもですが、よろしくお願いします。

専門家に質問してみよう