エクセル

【Excel】VBAで右から特定の文字まで抽出・削除する方法【マクロで文字列の右側】

当サイトでは記事内に広告を含みます

この記事では、VBAにて右から特定の文字まで抽出・削除する方法【マクロで文字列の右側】について解説していきます。

VBAで右から指定文字までを抽出・削除するサンプルコードをいくつかのパターンで紹介していきますので、ぜひチェックしてみてください。

目次

VBAで文字列の右から特定文字までの抽出:特定文字移行を抽出【関数化】

VBAマクロにて特定文字以降を取得するコードは以下の通りです。


 

このコードをAlt+F11にてVBE画面を開き、そこに貼り付けましょう。

すると、ExtractRightUntilという名前の関数ができます。この関数は、

=ExtractRightUntil(指定文字列, 特定文字)

という構文で使用することができます。

以下のサンプルにて特定文字を「習」として、右から抽出していきます。

作った関数の通り、=ExtractRightUntil(A1,”習”)と任意のセルに入れましょう。

ENTERを入れ、オートフィルでコピーすれば特定文字以降の抽出が完了です。

VBAマクロで右から特定文字まで文字列を抽出するコード【関数にせず、隣の列に出力】

上では関数にしてみましたが、実行ボタン一つで完了させたい人もいることでしょう。

ここでは、対象セルを選び実行すると、特定文字以降の文字列を「隣の列」に返すマクロを準備しました。

私は、以下の targetChar = “特定の文字”を targetChar = “習”にしてみました。

あなたが使う場合は、特定文字を好きなものにご変更くださいませ。


 

実行してみましょう!

うまくいきましたね(^^)/

 

マクロでの右から特定文字までの削除する方法【関数化】

今度は指定文字以降の文字列を削除する関数を作ってみましょう(LEFT+FINDなどが一般的かもですが笑)。勉強も兼ねてですね(^^)/


 

Alt+F11でVBE画面に貼り付けます。

この状態で、上と同様に

=RemoveRightUntil(対象セル, 特定文字)

という構文で使えばOK。

 

 

右から特定の文字列まで削除

Sub RemoveRightUntilInSelectedCells()
Dim targetCell As Range
Dim inputString As String
Dim targetChar As String
Dim position As Long
Dim updatedText As String

‘ 特定の文字を設定
targetChar = “特定の文字”

For Each targetCell In Selection
inputString = targetCell.Value

position = InStrRev(inputString, targetChar)

If position > 0 Then
updatedText = Left(inputString, position – 1)
Else
updatedText = inputString
End If

targetCell.Value = updatedText
Next targetCell
End Sub

 

 

 

ABOUT ME
white-circle7338
アラサーの男性です。自分が今まで経験・勉強してきた「エクセル」「ビジネス用語」「生き方」などの情報を、なるべくわかりやすく、楽しく、発信していきます。 一緒に人生を楽しんでいきましょう