• ベストアンサー

VBAマクロで特定文字から文字までを抜き出す

下記のサンプル文字列がありますが、余計な文字が入っているので削除をして 目的部分のみ抽出したい。 aaaa@gmail.com> 時折、下記の様な場合があるのでドメイン部分だけ抜き出したい。 @しつもん株式会社aaaa@gmail.com> @だけでMIDとかで書き出すと「しつもん株式会社」以降も抜き出される ので、「>」以前で「@」以降を抜き出すって形にしたいのですが、ネットで 検索をしても??だったので質問させて頂きます。

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

  • ベストアンサー
  • ushi2015
  • ベストアンサー率51% (241/468)
回答No.1

こんにちは Sub test()   Dim s As String   Dim i As Long   s = "@しつもん株式会社aaaa@gmail.com>"   i = InStrRev(s, "@") + 1   MsgBox Mid(s, i, Len(s) - i) End Sub とかでしょうか?

merrykun2006
質問者

お礼

ありがとうございます! あんなに悩んでいたのに一発で解決です! 今後とも宜しくお願い致します。

その他の回答 (1)

回答No.2

Dim s As String Dim p1 As Integer Dim p2 As Integer s = "@しつもん株式会社aaaa@gmail.com>" p1 = InStrRev(s, "@") p2 = InStr(p1, s, ">") Debug.Print Mid(s, p1 + 1, (p2 - p1 - 1))

merrykun2006
質問者

お礼

様々な方法があるんですね! あんなに悩んでいたのに一発で解決です☆ ただ、ushi2015さんが先に回答されたので 申し訳ありませんが、ベストアンサーとさせて 頂きました。 今後とも宜しくお願い致します。

関連するQ&A

  • Excelの文字列操作について

    Right・Left・Mid関数は何桁目以降表示しなさい、とか何桁目以降何桁分を抽出しなさいという関数ですが、例えば、@AAAA@BBBBB@CC.***のような文字列があり、文字列の右側から何桁目に@が来るか知る関数はありますか?サンプルの文字列でいうと、***.CC@の順になりますので、7桁目と判るようにできますか?どなたかお知恵をお貸し下さい。よろしくお願い致します。

  • エクセルでメールアドレスと抽出したい

    同じセルに A1セルに AAAA@gmail.com BBBB@gmail.com と2つのメアドが入っている。 B1セルに AAAA@gmail.com C1セルに BBBB@gmail.com としたい場合どのようにやればいいでしょうか? どうぞよろしくお願いいたします。

  • Excel2007 マクロ 特定セルの文字列抽出

    Excel2007 マクロ 特定セルの文字列抽出 A列に100行程度、製品番号が入っています。 例えばAAAA-NNN-BBBB-UUUUUUUとある場合に NNNだけを抽出して、B列に転記します。 関数であれば、Mid関数で解決できるのですが、 マクロで解決したいです。 下記を自分で考えたのですが、エラーが発生します。 アドバイスお願いいたします。 Sub moji() Dim last As Long, i As Long Dim strt As Integer 'A列「製品番号」から文字を抽出してB列に反映 last = Range("A65536").End(xlUp).Row For i = 2 To last strt = Mid("A", 7, 3) Cells(i, "B") = strt Next i End Sub

  • Excel マクロ 特定文字の抽出

    Excel マクロ 特定文字の抽出 10月20日に質問させていただき、jcctaira様にご回答頂きました。 1点うまくいかない点があり、再度質問させていただきます。 お教え頂きましたマクロは下記になります。 For i = 2 To last   strt = Mid(Cells(i, "A"), 6, 3)   Cells(i, "B") = strt  Next i End Sub 3文字が3桁の数字で例えば「001」や「022」の場合に 貼り付けたセルでは「1」や[22」になり0が表示されません。 どのように貼り付けを指定すれば3桁の数字(先頭が0のもの)が 正しく反映されますでしょうか。

  • 文字列に特定の文字の有無を調べたい。

    ある文字列に特定の文字が入っているか否かを調べたいのです。 AccessでVBAを使用して有無を調べたいんです。 具体的には下記の通りです。 カナ氏名が入力されているフィールドを検索して文字列を抽出したいんです。 "抽出"をカナにすると"チュウシュツ"ですよね。 所が私が使用しているテーブルのカナ氏名が入力されているフィールドには "抽出"は"チユウシユツ"と入力されているんです。 "チュウシュツ"と入力しても"抽出"は表示されず、"チユウシユツ"と入力しなければ "抽出"は表示されません。 従って"チュウシュツ"とキーボード入力してから先頭から2文字目と5文字目の "ュ"を"ユ"に再度変換しなければならないんです。 何か簡単な関数やプロシージャがないでしょうか? 何分初心者なんで下記の様な凄く長いプロシージャしか思い浮かびません。 宜しくお願いいたします。 (例) Public Function Kana_change() Dim kana As String '左から2桁目が小文字の時の変換 If Mid(kana, 2, 1) = "ァ" Then kana = Right(kana, 1) & "ア" & Mid(kana, 3, 13) Else kana = kana End If If Mid(kana, 2, 1) = "ィ" Then kana = Right(kana, 1) & "イ" & Mid(kana, 3, 13) Else kana = kana End If If Mid(kana, 2, 1) = "ゥ" Then kana = Right(kana, 1) & "ウ" & Mid(kana, 3, 13) Else kana = kana End If If Mid(kana, 2, 1) = "ェ" Then kana = Right(kana, 1) & "エ" & Mid(kana, 3, 13) Else kana = kana End If If Mid(kana, 2, 1) = "ォ" Then kana = Right(kana, 1) & "オ" & Mid(kana, 3, 13) Else kana = kana End If If Mid(kana, 2, 1) = "ャ" Then kana = Right(kana, 1) & "ヤ" & Mid(kana, 3, 13) Else kana = kana End If If Mid(kana, 2, 1) = "ュ" Then kana = Right(kana, 1) & "ユ" & Mid(kana, 3, 13) Else kana = kana End If If Mid(kana, 2, 1) = "ョ" Then kana = Right(kana, 1) & "ヨ" & Mid(kana, 3, 13) Else kana = kana End If If Mid(kana, 2, 1) = "ッ" Then kana = Right(kana, 1) & "ツ" & Mid(kana, 3, 13) Else kana = kana End If End Sub End Function

  • 特定文字列の抽出

    VB6の質問です。 桁数、データが不定の文字列中から特定文字を抽出したいのでが、方法を教えていただけないでしょうか? 抽出したいデータの桁数が毎回不定でMid, Left, Right関数が使用できません。 Dim Buffer As String Buffer = "A12345...B678910.TRAGET..C" '桁数、データが不定の文字列がBufferに入ります。 例えば、変数Bufferから、桁数を考慮しないで"TARGET"の文字列を抽出したのです。 InStr関数で、位置を特定して、Mid関数などで抽出するれば、良いと思うのですが これをどんな桁数のときも対応できるようにルーチン化にできないでしょうか?

  • chromeのブックマークとアカウント

    PCのchromeで私Aが aaaa@gmail.comでログインしていてブックマークバーが出ているとします。 ここで友だちBさんが遊びに来てaaaa@gmail.comをログアウトして自分のbbbb@gmail.comでログインするとします。予想でブックマークバーはBさんのものになると思いましたが以前私Aのブックマークです。Bさんのブックマークバーにするにはどうすればよいのでしょう

  • sample.comの使用

    こんにちは。 よくインターネットがらみの質問をする場合などに、sample.comと言うドメインを使用する方いますよね。大企業のサイトでもたまに見かけます。 例えば、実際のドメインは知らせたくない場合に、 『aaa@sample.comにメールを送るとbbb@sample.comに届くようにしたい。』と書いたりします。 このsample.comと言うドメインは、こういった用途で使用してよいドメインなのでしょうか。 どこかにそういった規定でもあるのかと思い、質問させていただきました。 ちなみに、sample.jpなどはどうなのでしょうか。 よろしくお願いします。

  • 迷惑メール対策

    @yahoo.co.jpや@gmail.comのドメインの迷惑メールが@の前を変えていろいろ来ます。@yahoo.co.jpや@gmail.comそのものは来ないようにはしたくないのですが何か対策はないでしょうか? 携帯に登録したアドレスしか許可しない、というような設定は考えていません。

  • 重複文字列を削除するソフトはありませんか?

    重複文字列を削除したり、抽出したりするソフトはありませんか? Ta****@gmail.com hi*********@gmail.com Ta****@gmail.com ta*******@gmail.com Ta****@gmail.com と書いてあるファイルで 処理後 Ta****@gmail.com hi**********@gmail.com ta********@gmail.com このように重複文字を削除するツールはありませんか?

専門家に質問してみよう