• ベストアンサー

メールアドレスの文字列を@の左右でセルを振り分けるマクロを

Excelのsheetに、メールアドレスを(A1)から(A100)まで縦に表示したsheetがあります。 これをB列に@マークの左側(個人アドレス)、C列に@マークの右側(サーバーのアドレス)を表示させたいのですが、 出来るだけ簡単なマクロを作って示していただけませんか。 長く、VBAから遠ざかっていたため、自信がありません。 よろしくお願いします。

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

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

こんにちは。 その程度でしたら、マクロでなくてもよいと思いますね。 B1~ =MID(A1,1,FIND("@",A1)-1) C1~ =SUBSTITUTE(A1,B1&"@","") マクロなら、こんなところかな? Sub TEST() Dim num As Integer, c As Range For Each c In Range("A1", Range("A65536").End(xlUp))  num = InStr(c.Value, "@") If num > 0 Then   c.Offset(, 1).Value = Mid$(c.Value, 1, num - 1)   c.Offset(, 2).Value = Mid$(c.Value, num + 1) End If Next End Sub

noname#18526
質問者

お礼

感謝。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.3

マクロでなくても B1 =LEFT(A1,FIND("@",A1)-1) C1 =RIGHT(A1,LEN(A1)-FIND("@",A1)) でできます

noname#18526
質問者

お礼

感謝。

全文を見る
すると、全ての回答が全文表示されます。
  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.1

こんなところでいかがでしょうか? Sub test() Dim C As Range Dim T As Variant On Error Resume Next For Each C In Range("A1:A100") If C.Value <> "" Then T = Split(C.Value, "@") C.Offset(, 1) = T(LBound(T)) C.Offset(, 2) = T(LBound(T) + 1) End If Next On Error GoTo 0 End Sub

noname#18526
質問者

お礼

感謝。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセル VBA 特定の文字列

    エクセル VBA 特定の文字列 A列に、様々な文字列があるとします。 そのうち、りんごと書かれている行のみを別シートに書き出すマクロを教えてください。 お願い致します。

  • セル内の文字列の差し替え

    マクロなど作れない初心者です、すみません。 セル内の文字列の差し替えをしたいのですが可能でしょうか? Sheet1のA1に「○」、A2に「×」、A3に「○ ×」 と入っているデータがあり、 Sheet2のA1に「=Sheet1!A1」と入れて 「○」と表示させているのですが、 そのSheet2のA1に 「○」がある場合には「含む」、 「×」がある場合には「含まず」、 「○ ×」がある場合には「含む」、 と表示させたいのですが 条件付き書式で「○を含むなら..」 表示形式のユーザー定義で「"含む"」などとしても 空白になってしまい表示されません。 このような特定の文字列を差し替えたいときには どのようにすればよろしいでしょうか? ちなみに「Sheet1」のシートの内容は変更できません..

  • エクセル 文字列検索と検索した文字列が含まれるセルへのジャンプ

    エクセル教えてください。 VBAは使ったことがありません。 現在Q&Aを作っています。 かなりボリュームが増えてしまったので、 文字列検索ができるようにしたいと思っています。 そこで、あるセルに調べたい文字列を入力し、 検索ボタンを押すと、その文字列が含まれるセルにジャンプする。 こんな機能は、エクセルでできませんでしょうか? マクロを組んだりすればよいのでしょうか? 教えてくださいー。

  • エクセルのマクロで入力文字を一文字ずつ並んだセルに入れる

    エクセルマクロ超初心者です。 エクセルVBAでユーザーフォームを作成しました。 テキストボックスに入力した文字列を「登録」ボタン押下後、エクセルシートのセルに一文字づつ入るようにするにはどうすれば良いでしょうか? 例えばテキストボックスに「kohiro」と入力するとエクセルのsheet1のA1「k」、B1「o」、C1「h」、D1「i」、E1「r」、F1「o」となるようにしたいのです。入力する文字数は0~30文字までで、その都度長さは変わります。どうやって、文字をばらせばいいのか、またどうやって可変長の文字列を指定したセルに入力すればいいのかわかりません。どうかよろしくお願いいたします。

  • セル内の文字列操作について

    Excelでセル内の文字列を操作したいのですが、Excelの標準の関数では出来そうにないので、どなたかお力をお貸しください。 1つのセル内に、文字列や数値が複数入っています。 (例) Excel 12 りんご Word 11 このセルを調べて、数値のデータが複数入っている場合、最大値のみを表示させ、残りの数値データは削除したいのです。 (結果) Excel 12 りんご Word この処理の対象はセル内の数値データであって文字列には作用させず、結果的には文字列はそのまま表示させたいのです。 Excelの文字列に関する関数を調べてみたのですが、該当するものがなく、VBAを使用しなくてはならないのかもしれません。処理するデータが大量なため、VBAマクロなどで処理できれば大変ありがたいのですが、どなたかご存知の方がいらっしゃいましたら、ご教授くださいませ。どうぞよろしくお願いいたします。

  • (VBAにて)列のセルの結合について

    VBAを使って列の結合を行うとしています。 内容は ・A3とA4を結合~A59とA60を結合(60まで)  という具合に、セル2つで一つの組み合わせです。 ・これが列単位にA列~Y列まで同じように行おうとしています。 ・一つ一つマクロで記述するとえらい手間がかかるので  簡略するマクロ文は無いでしょうか? ・また、この作業はsheet3で行おうとしています。  内容はsheet1に書かれていまして、  (A4~Y4までが1レコードでA20~Y20まであります。)  マクロで普通にsheet3にコピーをすると1レコード目の後に  2レコード目が飛んで3レコード目が次にきてしまいます。 ・これはどうすればよいでしょうか? 素人であまりよく分かりません ご教授宜しくお願いします。   

  • Excelマクロにて文字列連結

    現在Excelのマクロにて文字列の連結を行っているのですが、 繋いだ文字列を改行を付けて連結を行いたいです。 セルとセルの中の文字列を改行を付けて連結するにはどうしたらいいのでしょうか? 例 A1セル「あああ」 B1セル「いいい」 C1セル「あああ       いいい」 Worksheets(sheet1).Range("C1").Value = Worksheets(sheet1).Range("A1").Value + Worksheets(sheet1).Range("B1").Value をすると 「あああいいい」と1行で表示されてしまいます。     ↑ ここに改行を入れるにはどうしたらいいのでしょうか? 以上、宜しくお願いします。

  • 文字を置き換えるマクロが知りたいです

    こんばんは!会社で使用しているエクセルシートで困っていることがあります。 sheet1に各年度毎の表が作成されています(A列は平成25年度、B列は平成26年度…) sheet2の特定のセルに年度を入力すると、sheet2のA列に入力されている数式「=Sheet1!A○」の"A"を"B"等に置き換えるマクロが知りたいです。 分かりづらい説明で申し訳ありませんが、よろしくお願いします。

  • VBAマクロで結合セルを含む列に列挿入する方法?

    お世話になっています。 下記のエクセルVBAマクロで、 列挿入処理をしているのですが、 列に結合セル(行方向)がある場合にだけ、 列選択がうまくできず、 目的と異なる処理をしてしまいます。 ActiveCell.Offset(0, 1).Columns("A:A").EntireColumn.Select Selection.Insert Shift:=xlToRight 新しいマクロの記録で やってみたのですが、 上記マクロが生成されただけでした。 手作業では 列の上のアルファベットを選択して、 列挿入できるので、 何かいい方法があるのは? と思います。 どなたかよろしくお願いします。

  • 完全一致したら複数のセル代入するマクロは?

    エクセルのSheet1のa列にある文字列と、Sheet2にあるa列にある文字列と完全一致したら、前者のセルの右隣から3番目までのセルに、後者のセルの右隣から3番目までの文字列を順に代入するマクロをお教えください。単純にvlookup関数を使えばいいのですが、VBAで行いたいのです。複数のセルに順に代入するのに苦慮しています。よろしくお願い申し上げます。

このQ&Aのポイント
  • パソコンを新しく買い替えたが、使っていたムービーメーカーが入っていない。
  • 安全なサイトからムービーメーカーをダウンロードしたいが、このサイトは安全か疑問。
  • NEC製デスクトップのWindows11で利用しようとしている。
回答を見る