【Excel VBA】メール@の前を取得する(Instr , Left)

投稿者: | 2020年9月9日
excelアイコン

バージョン:マイクロソフト365

 

エクセルVBAでメールの@マークの前の部分を取得してみたいと思います。

 

具体的に何をすればいいか? やることは2つだけです。

① メールの@マークの場所が文字列最初から何番目かを探す。

② 文字列の最初から@マークの位置の番号-1まで抜き出す。

 

2つのみです。

 

 

それではここから具体的に解説していきたいと思います。

メールの@マークの場所が文字列の最初から何番目かを探します(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サンプル

 

イミディエイトを表示させるには

 

まとめ

いかがでしたでしょうか。

慣れないうちは少々難しいですが毎日眺めてたら嫌でも覚えちゃいますから最初はわからなくてもこんなもんなんだで大丈夫ですからね!