ワークシート関数としての TRIM 関数と VBA 関数としての TRIM 関数が異なる結果を返すことはわかっています。
- ワークシート関数は、単語間の単一のスペースを除いて、テキスト文字列からすべてのスペースを削除します
- VBA 関数は先頭と末尾のスペースのみを削除します。
カスタム VBA 関数を使用せずに、ワークシート関数を使用して VBA の動作をエミュレートする方法はありますか?
ワークシート関数のみを使用して、A1 のテキスト文字列に対してこれを試すことができます。
=REPLACE(LEFT(A1,MATCH(2,1/(MID(A1,MMULT(ROW(INDIRECT("1:"&LEN(A1))),1),1)<>" "))),1,FIND(LEFT(TRIM(A1)),A1)-1,"")
文字列反転ワークシート関数がないため、スペースではない最後の文字の位置を見つけるのは簡単ではありません。
VBA を使用したくない場合は、オプションでData|Text to Columnsを使用する方がはるかに簡単です。
これにより、先頭と末尾のスペースも削除されます。
ワークシート関数は、単語間の単一のスペースを除いて、テキスト文字列からすべてのスペースを削除します
いいえ、それは完全に真実ではありません:)ワークシートTRIM
関数は改行なしのスペース文字(
)を削除しません。改行しないスペース文字を削除するには、別の関数を呼び出しますCLEAN()
Trim
VBAでワークシート関数を使用したい場合は、次のように使用できます
Application.WorksheetFunction.Trim(Range("A1").Value)
Excelワークシートで使用できます=TRIM()
ワークシートで参照できる関数をVBAで記述できます。
例えば:
Public Function MyTrim(text As String) As String
MyTrim = Trim(text)
End Function
次に、ワークシートで、トリミングするテキストがセルA1にあると想定します。
=MyTrim(A1)