• ベストアンサー

エクセルで特定文字列の抽出マクロを教えてください

Wendy02の回答

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.4

私自身も、通信ログは、Excelに貼りつけた状態からのものという前提からです。 '標準モジュールに登録して、FindText を実行してください。 シートがひとつ追加され、そこに出力されます。 Sub FindText()  Dim rng As Range  Dim c As Range, n As Variant  Dim arbuf() As String, buf As String  Dim i As Long, j As Long  With ActiveSheet   On Error Resume Next   Set rng = .UsedRange.SpecialCells(xlCellTypeConstants, xlTextValues)   On Error GoTo 0   For Each c In rng.Cells    If InStr(1, c.Value, "docomo", 1) > 0 Then     buf = sbFind_wRE(c.Value)     If buf <> "" Then      For Each n In Split(buf, "|", , 1)       If n <> "" Then       ReDim Preserve arbuf(i)       arbuf(i) = n       i = i + 1       End If      Next n     End If    End If   Next c  End With  With Worksheets.Add(After:=ActiveSheet) 'シートを追加   j = UBound(arbuf)   .Range("A1").Resize(j + 1, 1).Value = Application.Transpose(arbuf)  End With End Sub Private Function sbFind_wRE(ByVal strTxt As String) Dim ret As String Dim Matches As Object Dim Match As Object With CreateObject("VBScript.RegExp")  .Pattern = "On \d{4}/[01]\d/[0-3]\d, at [0-6]\d:[0-6]\d, [^@]+@[A-Za-z\.]+jp.? wrote:"  .Global = True  If .Test(strTxt) Then  Set Matches = .Execute(strTxt)  For Each Match In Matches    ret = Match.Value & "|" & ret  Next Match  End If End With  If ret <> "" Then   sbFind_wRE = ret  End If End Function

yuri805
質問者

お礼

ありがとうございました。

関連するQ&A

  • Excel 2007 マクロ 文字列の抽出について

    Excel 2007 マクロ 文字列の抽出について 元データのB列(番号)に5桁、3桁、7桁の数字が入っています。 その番号をSheet2にコピーして貼り付けます。 貼り付ける際に、5桁、3桁、7桁をそれぞれの列に入れます。 Sheet2のB列(番号2)で400番台はF列(種別)に国産 同じくB列(番号2)で900番台はF列(種別)に外国産 を反映するようにしたいです。 どのようなマクロになりますでしょうか。 サンプルがございましたら、お教えください。

  • エクセル 文字列抽出について質問です

    こんにちは^^ エクセル文字列抽出について質問です。 例えば、 "ボリュームサイズ=74.53GB" この文字列から、"="の前後に分けて "ボリュームサイズ" と "74.53GB" をそれぞれ別セルに抽出する場合、どんな方法があるでしょうか? 関数、VBAマクロどちらでも結構です。 教えて下さい。お願いします。

  • エクセル 特定の文字列を抽出・挿入

    例えば A列にあるセルの中から特定の文字列を検索・抽出して、その特定の文字列だけB列に挿入していく関数はありますか? またはA列にあるセルの中から特定の文字列に挟まれた文字列を検索・抽出してその特定の文字列だけB列に挿入していく関数はありますか? マクロを組まないと難しいのでしょうか?

  • エクセルのマクロにおいて、セル内の文字の抽出方法

    エクセルのマクロにおいて以下のように行う方法を探しています。 ※使用しているofficeは2000です。 例えばA1のセル内に "WX2Z"のような文字列があるとします。 現在行おうと思っているのは、この"WX2Z"の文字列の1つめ、2つめの文字を順番に抽出する方法をマクロで行う方法を調べているのですが、どなたか教えて頂けないでしょうか? お願いいたします。  

  • sedなどで、特定の文字列内の数値を抽出したい

    sedなどで、特定の文字列内の数値を抽出したい シェルスクリプト内で、sedなどを使って特定の文字列内の文字列を抽出したいのですが、どうすればいいでしょうか? たとえば、job 999 at 2016-09-28 00:00のなかから、job ~ at内の「999」を抜き出したいです。 echo job 999 at 2016-09-28 00:00 | sed -e 's///g'... のようにして実行させたいです。

  • EXCEL2007で文字列の右側から特定文字を抽出

    EXCEL2007で1つのセルの文字列の右側から最初の"/"が出現したときまでの文字を抽出する方法を教えてください。 (例)  A 1エクセル/関数/123456/ここがターゲット 2 3 ⇒関数を使用し、上記A1セルの「ここがターゲット」の文字列を抽出したいのです。 神様、どうか教えてください!

  • エクセルの文字列で似たものを抽出する

    いくつかあるエクセルの文字列のうち, 一番にてる文字列を抽出する方法を教えてください. たとえば,画像のように入力してある30通りの文字列のうち, ★の文字列に一番似ている文字列は1~30番の文字列のうちどれか, を知る方法について,具体的に教えていただけると嬉しいです. 関数は,不得意なのを踏まえて,教えていただけるとなお嬉しいです. どうぞよろしくお願いします.

  • エクセルの文字列を抽出する関数を教えてください!

    テキストファイルから文字列をエクセルに貼りつけ、ある条件の単語のみを抽出する関数について教えてください。 (1)あらゆる文字・記号で構成されている文章のうち、” ”(二重引用符)で囲まれた中のその文字列だけを抽出するには、どのような関数があるのでしょうか。 (2)ある文章は、 (文字数はバラバラの文章).1-文章.doc、 (文字数はバラバラの文章).2-文章.doc、  ・・・ となっているテキストがあるのですが、そのテキストのうち、「数字ー」の形式は同じなのですが、その「(数字)‐」以降「.doc」までの文章のみ抽出するには、どのような関数になるのでしょうか。 マクロは組めませんので、関数で教えて頂ければ幸いです。 宜しくお願いします。

  • エクセルで特定文字列の抽出する方法を教えてください。

    エクセルで特定文字列の抽出する方法を教えてください。 たとえばG00X-483.931Y-412.2R5.0 と書かれてるセルからXの値「-483.931」だけを抽出したいのですが分からなくて困ってます。 またこの数値は8文字と決まってないのでX~Yの間の数値と言う感じで抽出したいです。 よろしくお願いします。

  • 特定の列の抽出

    CSVファイルがあり特定の列を抽出したいんですが、excelが入ってなくマクロ(VB)が使用できない為、そのような処理をバッチで処理することは可能でしょうか?教えてください。ちなみに抽出条件は日付です。