質問番号:1440684528
Excelの質問です。一番右端の半角スペース以降の文字列をすべて削除するような関数やマクロはないでしょうか。
今、B列に次のようなデータが、4万行近く並んでおります。
- -
らくだ 動物 アフリカ
らくだ 動物 特徴
らくだ 生息地 アジア
らくだ 生態 進化の過程
・・・
- -
といった感じです。
この状態から、一番右端の半角スペース以降の文字列全てを削除したいので、
- -
らくだ 動物
らくだ 動物
らくだ 生息地
らくだ 生態
・・・
- -
のようにしたいのですが・・・データが膨大で、手作業で行うのは途方もない作業です。
関数やマクロを用いて、何とか効率的に文字列を削除する方法はないでしょうか。よろしくお願い致します。
回答
Option Explicit Sub main() Dim MAXROW As Long Dim SPCount As Integer Dim lp As Long Const SPChar As String = " " MAXROW = Me.Range("A" & Rows.Count).End(xlUp).Row If MAXROW < 1 Then Exit Sub End If For lp = 1 To MAXROW ' 文字列後ろからスペースを探す SPCount = InStrRev(Cells(lp, 1), SPChar) If SPCount > 0 Then Cells(lp, 2) = Left(Cells(lp, 1), SPCount - 1) Else Cells(lp, 2) = Cells(lp, 1) End If Next lp End Sub