バージョン:マイクロソフト365
エクセルVBAでメールの@マークの前の部分を取得してみたいと思います。
具体的に何をすればいいか? やることは2つだけです。
① メールの@マークの場所が文字列最初から何番目かを探す。
② 文字列の最初から@マークの位置の番号-1まで抜き出す。
2つのみです。
それではここから具体的に解説していきたいと思います。
Menu
メールの@マークの場所が文字列の最初から何番目かを探します(instr)
基本
instrの引数
InStr(対象文字, 検索文字)
構文
@マークが最初から何番目かを調べます。
InStr(“xxxaa@google.com”, “@”)
確認
Debug.Print InStr(“xxxaa@google.com”, “@”)
結果
6
この6をLeftで使用します。
それではここからLeft
文字列の最初から@マークの番号まで抜き出す(Left)
基本
Leftの引数
Left(対象文字, 抜出す文字数)
構文
実際はここで6の部分に、先ほど作成したのInstrを挿入します。
ここで-1してるのは@マークまで取得してしまうので-1してます。
Left(“xxxaa@google.com”, 6-1)
確認
Debug.Print Left(“xxxaa@google.com”, 6-1)
結果
xxxaa
VBAサンプル
1 2 3 4 5 6 7 8 9 10 11 | Option Explicit Sub test() Dim str As String Dim inNum As Integer str = "xxxaa@google.com" inNum = InStr(str, "@") Debug.Print Left(str, inNum - 1) End Sub |
イミディエイトを表示させるには
まとめ
いかがでしたでしょうか。
慣れないうちは少々難しいですが毎日眺めてたら嫌でも覚えちゃいますから最初はわからなくてもこんなもんなんだで大丈夫ですからね!