<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>空白除去 &#8211; biz-tactics</title>
	<atom:link href="https://mashukabu.com/tag/%E7%A9%BA%E7%99%BD%E9%99%A4%E5%8E%BB/feed/" rel="self" type="application/rss+xml" />
	<link>https://mashukabu.com</link>
	<description></description>
	<lastBuildDate>Sat, 04 Jul 2026 01:49:34 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0.1</generator>

<image>
	<url>https://mashukabu.com/wp-content/uploads/2022/04/cropped-site-icon-32x32.png</url>
	<title>空白除去 &#8211; biz-tactics</title>
	<link>https://mashukabu.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>VBA WorksheetFunction.Trim の使い方｜VBA Trim との違いと使い分けを解説</title>
		<link>https://mashukabu.com/vba-worksheetfunction-trim/</link>
					<comments>https://mashukabu.com/vba-worksheetfunction-trim/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Mon, 08 Jun 2026 15:50:48 +0000</pubDate>
				<category><![CDATA[VBA・マクロ]]></category>
		<category><![CDATA[Trim]]></category>
		<category><![CDATA[VBA]]></category>
		<category><![CDATA[WorksheetFunction]]></category>
		<category><![CDATA[データクリーニング]]></category>
		<category><![CDATA[マクロ]]></category>
		<category><![CDATA[文字列操作]]></category>
		<category><![CDATA[空白除去]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=7849</guid>

					<description><![CDATA[VBA の WorksheetFunction.Trim は、文字列の先頭・末尾だけでなく単語間の連続スペースも1つに圧縮できます。中間スペースを残す VBA 標準の Trim 関数との違いを入力→出力の比較表で解説し、CSV やシステム出力のデータクリーニングに使える実務コードも紹介。Chr(160) ノーブレークスペースが消えない落とし穴と対処法もカバーしました。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">VBA の <code>Trim</code> 関数を使ったのに、文字列の途中にある余分なスペースが消えなくて困ったことはありませんか。実は、VBA の標準 <code>Trim</code> 関数は先頭と末尾のスペースしか削除しません。単語の間にある連続スペースを1つにまとめたいときは、<code>WorksheetFunction.Trim</code> を使います。</p>



<p class="wp-block-paragraph">この記事では、<code>WorksheetFunction.Trim</code> の使い方を、VBA 標準の <code>Trim</code>・<code>LTrim</code>・<code>RTrim</code> との違いとあわせて解説します。4つの空白処理の挙動は、入力と出力の比較表で整理します。</p>



<p class="wp-block-paragraph">CSV やシステム出力のデータクリーニングに使える実務コードも紹介します。最後に取り上げるのは、<code>Trim</code> 系をどれだけ使っても消えないノーブレークスペース（Chr(160)）の落とし穴と対処法。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-1" checked><label class="toc-title" for="toc-checkbox-1">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">VBA の WorksheetFunction.Trim とは？</a></li><li><a href="#toc2" tabindex="0">WorksheetFunction.Trim の使い方</a><ol><li><a href="#toc3" tabindex="0">VBE の起動と標準モジュールの準備</a></li><li><a href="#toc4" tabindex="0">基本コード</a></li></ol></li><li><a href="#toc5" tabindex="0">VBA Trim・LTrim・RTrim との違い｜4関数の比較表</a></li><li><a href="#toc6" tabindex="0">WorksheetFunction.Trim が活躍する実務シーン</a><ol><li><a href="#toc7" tabindex="0">実務コード1: 1つのセルをクレンジングする</a></li><li><a href="#toc8" tabindex="0">実務コード2: セル範囲を一括クレンジングする</a></li></ol></li><li><a href="#toc9" tabindex="0">ノーブレークスペース（Chr(160)）が削除できない落とし穴と対処法</a></li><li><a href="#toc10" tabindex="0">WorksheetFunction.Trim を使うときの注意点・よくあるエラー</a></li><li><a href="#toc11" tabindex="0">まとめ</a><ol><li><a href="#toc12" tabindex="0">関連記事</a></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">VBA の WorksheetFunction.Trim とは？</span></h2>



<p class="wp-block-paragraph"><code>WorksheetFunction.Trim</code> は、ワークシート関数の TRIM を VBA から呼び出すメソッドです。文字列の先頭と末尾のスペースを削除します。さらに、<strong>単語の間にある連続したスペース</strong>も1つだけ残して圧縮します。</p>



<p class="wp-block-paragraph">VBA には標準の <code>Trim</code> 関数もあります。ただし標準の <code>Trim</code> 関数は、中間の連続スペースには手を付けません。「単語間のスペースを1つに詰める」処理は、VBA 標準関数にはない機能です。</p>



<p class="wp-block-paragraph">そこで <code>WorksheetFunction</code> オブジェクトを経由して、ワークシート関数の TRIM を借りてくるわけです。具体的な挙動を見てみましょう。</p>



<pre class="wp-block-code"><code>result = WorksheetFunction.Trim(&quot;A   B   C&quot;)
'--- 結果は &quot;A B C&quot;（単語間スペースが1つに圧縮される）---</code></pre>



<p class="wp-block-paragraph">入力 <code>"A   B   C"</code> の単語間には、それぞれ3つのスペースがあります。<code>WorksheetFunction.Trim</code> を通すと、すべて1つにまとめられて <code>"A B C"</code> になります。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>NOTE: ワークシート関数を VBA から呼ぶ仕組み全般については、<a href="https://mashukabu.com/excel-vba-howto-use-worksheetfunction/">VBAでWorksheetFunctionを使う方法</a>で詳しく解説しています。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc2">WorksheetFunction.Trim の使い方</span></h2>



<p class="wp-block-paragraph">まずは基本の構文と、実際に動かすための準備を確認します。</p>



<pre class="wp-block-code"><code>WorksheetFunction.Trim(Arg1)</code></pre>



<p class="wp-block-paragraph">引数は次のとおり。</p>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須/省略</th><th>データ型</th><th>説明</th></tr></thead><tbody><tr><td>Arg1</td><td>必須</td><td>String</td><td>余分なスペースを削除したい文字列</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">戻り値は String 型です。<code>Application.WorksheetFunction.Trim(Arg1)</code> と書いても同じ動作になります。<code>Application.</code> は省略しても問題ありません。</p>



<h3 class="wp-block-heading"><span id="toc3">VBE の起動と標準モジュールの準備</span></h3>



<p class="wp-block-paragraph">コードを書くには、まず VBE（Visual Basic Editor）を開きます。Excel で <code>Alt + F11</code> キーを押すと VBE が起動します。</p>



<p class="wp-block-paragraph">「開発」タブの「Visual Basic」ボタンから開けることも覚えておきましょう。「開発」タブが表示されていない場合は、次の手順で追加します。</p>



<ol class="wp-block-list"><li>「ファイル」→「オプション」を開きます。</li><li>「リボンのユーザー設定」を選びます。</li><li>右側の一覧で「開発」にチェックを入れます。</li></ol>



<p class="wp-block-paragraph">VBE が開いたら、メニューの「挿入」→「標準モジュール」をクリックします。表示されたコード入力欄に、これから紹介するコードを貼り付けてください。</p>



<h3 class="wp-block-heading"><span id="toc4">基本コード</span></h3>



<p class="wp-block-paragraph">実際に <code>WorksheetFunction.Trim</code> を動かす基本コードです。変換前と変換後をメッセージボックスで見比べられるようにしています。</p>



<pre class="wp-block-code"><code>Sub WorksheetFunctionTrimSample()
    Dim sBefore As String '変換前の文字列
    Dim sAfter As String  '変換後の文字列

    '--- 変換前の文字列を用意 ---
    sBefore = &quot;  Excel   VBA   入門  &quot;

    '--- 連続スペースを1つに圧縮し、先頭末尾も削除 ---
    sAfter = WorksheetFunction.Trim(sBefore)

    '--- 変換前後を確認 ---
    MsgBox &quot;変換前：[&quot; &amp; sBefore &amp; &quot;]&quot; &amp; vbCrLf &amp; _
           &quot;変換後：[&quot; &amp; sAfter &amp; &quot;]&quot;
End Sub</code></pre>



<p class="wp-block-paragraph">このコードを実行すると、変換後は <code>[Excel VBA 入門]</code> と表示されます。先頭と末尾のスペースが消え、単語間の連続スペースも1つに詰まりました。<code>[ ]</code> で囲んでいるのは、両端のスペースが消えたことを目で確認しやすくするためです。</p>



<h2 class="wp-block-heading"><span id="toc5">VBA Trim・LTrim・RTrim との違い｜4関数の比較表</span></h2>



<p class="wp-block-paragraph">ここがこの記事の核心です。VBA には空白を扱う関数が複数ありますが、削除する範囲はそれぞれ異なります。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>先頭のスペース</th><th>末尾のスペース</th><th>中間の連続スペース</th></tr></thead><tbody><tr><td><code>Trim</code></td><td>削除する</td><td>削除する</td><td>残す</td></tr><tr><td><code>LTrim</code></td><td>削除する</td><td>残す</td><td>残す</td></tr><tr><td><code>RTrim</code></td><td>残す</td><td>削除する</td><td>残す</td></tr><tr><td><code>WorksheetFunction.Trim</code></td><td>削除する</td><td>削除する</td><td>1つに圧縮する</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">同じ文字列に4つの関数を通すと、結果はどう変わるでしょうか。入力は <code>"  A   B  "</code> とします。先頭に2つ、中間に3つ、末尾に2つのスペースがある文字列です。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>出力結果</th></tr></thead><tbody><tr><td><code>Trim("  A   B  ")</code></td><td><code>"A   B"</code></td></tr><tr><td><code>LTrim("  A   B  ")</code></td><td><code>"A   B  "</code></td></tr><tr><td><code>RTrim("  A   B  ")</code></td><td><code>"  A   B"</code></td></tr><tr><td><code>WorksheetFunction.Trim("  A   B  ")</code></td><td><code>"A B"</code></td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><code>Trim</code>・<code>LTrim</code>・<code>RTrim</code> はいずれも、中間の連続スペースをそのまま残します。中間スペースを1つに詰めるのは <code>WorksheetFunction.Trim</code> だけです。ここが<strong>両者の最大の違い</strong>。</p>



<p class="wp-block-paragraph">「先頭と末尾だけ消えればいい」場合は VBA 標準の <code>Trim</code> で十分です。「単語間の余分なスペースも整えたい」場合は <code>WorksheetFunction.Trim</code> を選びます。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>TIP: 各関数の単体の使い方は、<a href="https://mashukabu.com/excel-vba-howto-use-trim/">VBA Trim関数</a>・<a href="https://mashukabu.com/excel-vba-howto-use-ltrim/">VBA LTrim関数</a>・<a href="https://mashukabu.com/excel-vba-howto-use-rtrim/">VBA RTrim関数</a>の各記事で解説しています。空白処理全体の使い分けは<a href="https://mashukabu.com/excel-vba-howto-remove-space/">VBAで空白を削除する方法まとめ</a>も参考にしてください。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc6">WorksheetFunction.Trim が活躍する実務シーン</span></h2>



<p class="wp-block-paragraph"><code>WorksheetFunction.Trim</code> の出番は、間隔がそろっていないデータを受け取ったときです。代表的なのが、システムから出力されたレポートや CSV ファイル。項目の区切りが複数スペースになっていることがよくあります。</p>



<p class="wp-block-paragraph">実務で使えるコードを2つ紹介します。</p>



<h3 class="wp-block-heading"><span id="toc7">実務コード1: 1つのセルをクレンジングする</span></h3>



<p class="wp-block-paragraph">A 列のセルに入った文字列を整え、B 列に書き出すコードです。</p>



<pre class="wp-block-code"><code>Sub CleanSingleCell()
    Dim sRaw As String   '元の文字列
    Dim sClean As String '整形後の文字列

    '--- A2セルの値を取得 ---
    sRaw = Range(&quot;A2&quot;).Value

    '--- 先頭末尾＋中間スペースを正規化 ---
    sClean = WorksheetFunction.Trim(sRaw)

    '--- 整形結果をB2セルに出力 ---
    Range(&quot;B2&quot;).Value = sClean
End Sub</code></pre>



<p class="wp-block-paragraph">A2 に <code>"  山田    太郎  "</code> のような値が入っていても、B2 の出力はきれいな <code>"山田 太郎"</code>。</p>



<h3 class="wp-block-heading"><span id="toc8">実務コード2: セル範囲を一括クレンジングする</span></h3>



<p class="wp-block-paragraph">実務では1セルだけでなく、列全体を一気に処理したい場面が多いはずです。A 列のデータを最終行まで順番に整えるコードです。</p>



<pre class="wp-block-code"><code>Sub CleanRangeWithTrim()
    Dim lastRow As Long '最終行の行番号
    Dim i As Long       '行カウンター

    '--- A列の最終行を取得 ---
    lastRow = Cells(Rows.Count, 1).End(xlUp).Row

    '--- 2行目から最終行まで繰り返す ---
    For i = 2 To lastRow
        '--- 文字列のセルだけを対象に正規化 ---
        If VarType(Cells(i, 1).Value) = vbString Then
            Cells(i, 1).Value = WorksheetFunction.Trim(Cells(i, 1).Value)
        End If
    Next i

    MsgBox &quot;クレンジングが完了しました。&quot;
End Sub</code></pre>



<p class="wp-block-paragraph"><code>VarType</code> でセルの値が文字列かどうかを確認しています。数値や日付のセルに <code>Trim</code> をかけると、意図しない型変換が起きることがあるためです。文字列のセルだけを対象にすれば安心でしょう。</p>



<h2 class="wp-block-heading"><span id="toc9">ノーブレークスペース（Chr(160)）が削除できない落とし穴と対処法</span></h2>



<p class="wp-block-paragraph"><code>WorksheetFunction.Trim</code> には<strong>1つ大きな落とし穴</strong>があります。それが「ノーブレークスペース」です。Web ページや一部のシステムからコピーしたデータに混ざっていることがあります。</p>



<p class="wp-block-paragraph">ノーブレークスペースは、文字コードの値が160の空白文字です。HTML での表記は <code>&nbsp;</code>。見た目は普通のスペースとそっくりですが、別の文字です。</p>



<p class="wp-block-paragraph"><code>WorksheetFunction.Trim</code> が削除できるのは、値が32の半角スペース（Chr(32)）だけです。これは公式ドキュメントにも明記されています。VBA 標準の <code>Trim</code>・<code>LTrim</code>・<code>RTrim</code> も同じく、ノーブレークスペースには反応しません。</p>



<pre class="wp-block-code"><code>Sub TrimCannotRemoveNbsp()
    Dim sText As String '元の文字列

    '--- 単語の間にノーブレークスペースを含む文字列 ---
    sText = &quot;A&quot; &amp; Chr(160) &amp; Chr(160) &amp; &quot;B&quot;

    '--- Trimをかけてもノーブレークスペースは残る ---
    MsgBox &quot;[&quot; &amp; WorksheetFunction.Trim(sText) &amp; &quot;]&quot;
End Sub</code></pre>



<p class="wp-block-paragraph">このコードを実行しても、A と B の間のノーブレークスペースは消えません。「Trim を試したのに空白が消えない」という現象の正体は、たいていこれです。</p>



<p class="wp-block-paragraph">対処法は、ノーブレークスペースを先に半角スペースへ変換することです。<code>Replace</code> 関数を使います。半角スペースに変えてから <code>WorksheetFunction.Trim</code> を通すと、区切りのスペースを残しつつ正規化できます。</p>



<pre class="wp-block-code"><code>Sub CleanWithNbsp()
    Dim sRaw As String   '元の文字列
    Dim sClean As String '整形後の文字列

    '--- A2セルの値を取得 ---
    sRaw = Range(&quot;A2&quot;).Value

    '--- ノーブレークスペースを半角スペースに変換 ---
    sClean = Replace(sRaw, Chr(160), &quot; &quot;)

    '--- 連続スペースを1つに圧縮し先頭末尾も削除 ---
    sClean = WorksheetFunction.Trim(sClean)

    '--- 整形結果をB2セルに出力 ---
    Range(&quot;B2&quot;).Value = sClean
End Sub</code></pre>



<p class="wp-block-paragraph">「<code>Chr(160)</code> を半角スペースに変換 → <code>WorksheetFunction.Trim</code>」の順番がポイント。いきなり全削除すると、本来必要な区切りスペースまで失われることがあります。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>NOTE: ノーブレークスペースの正体と消し方は、<a href="https://mashukabu.com/about-nbsp/">Excelで消えない空白の正体と消し方</a>でさらに詳しく解説しています。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc10">WorksheetFunction.Trim を使うときの注意点・よくあるエラー</span></h2>



<p class="wp-block-paragraph">最後に、つまずきやすいポイントを整理しておきましょう。</p>



<p class="wp-block-paragraph">1つ目は、タブや改行は削除されないことです。削除対象はあくまで半角スペースだけです。タブ（Chr(9)）や改行（Chr(10)、Chr(13)）が混じっている場合は、<code>Replace</code> で個別に処理しましょう。</p>



<p class="wp-block-paragraph">2つ目は、全角スペースの扱いです。<code>WorksheetFunction.Trim</code> は半角スペースを対象に設計されています。全角スペースを確実に消したいときは、<code>Replace(s, "　", " ")</code> で半角に変換してから処理するのが安全です。</p>



<p class="wp-block-paragraph">3つ目は、空セルや数値セルへの適用。空のセルや数値のセルを直接渡すと、思わぬ型変換が起きることがあります。実務コード2のように <code>VarType</code> で文字列かどうかを確認してから渡すと、トラブルを防げます。</p>



<figure class="wp-block-table"><table><thead><tr><th>つまずきポイント</th><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td>中間スペースが残る</td><td>VBA 標準の <code>Trim</code> を使っている</td><td><code>WorksheetFunction.Trim</code> を使う</td></tr><tr><td>ある空白だけ消えない</td><td>ノーブレークスペース（Chr(160)）</td><td><code>Replace</code> で半角スペースに変換してから処理</td></tr><tr><td>全角スペースが残る</td><td>対象は半角スペースのみ</td><td><code>Replace(s, "　", " ")</code> で半角に変換</td></tr><tr><td>タブ・改行が残る</td><td>対象は半角スペースのみ</td><td><code>Replace</code> で Chr(9)/Chr(10)/Chr(13) を処理</td></tr></tbody></table></figure>



<h2 class="wp-block-heading"><span id="toc11">まとめ</span></h2>



<p class="wp-block-paragraph"><code>WorksheetFunction.Trim</code> は、文字列の先頭・末尾のスペースに加えて、単語間の連続スペースも1つに圧縮できるメソッドです。VBA 標準の <code>Trim</code> 関数が中間スペースを残すのに対し、こちらは中間スペースを詰めてくれます。この違いこそが、両者を使い分ける<strong>決め手</strong>。</p>



<p class="wp-block-paragraph">システム出力や CSV インポート後のデータで、間隔が不規則な文字列を整えたいときに役立ちます。ただし、ノーブレークスペース（Chr(160)）は <code>Trim</code> 系では消せません。<code>Replace</code> で半角スペースに変換してから処理する、という流れを覚えておくと安心です。</p>



<p class="wp-block-paragraph">空白処理の関数はそれぞれ役割が違います。先頭・末尾だけなら <code>Trim</code>、片側だけなら <code>LTrim</code>/<code>RTrim</code>、中間も整えるなら <code>WorksheetFunction.Trim</code>、と使い分けてみてください。</p>



<h3 class="wp-block-heading"><span id="toc12">関連記事</span></h3>



<ul class="wp-block-list"><li><a href="https://mashukabu.com/excel-vba-howto-use-trim/">VBA Trim関数の使い方｜前後の空白を一括削除する方法</a></li><li><a href="https://mashukabu.com/excel-vba-howto-use-ltrim/">VBA LTrim関数の使い方｜先頭の空白を削除する方法</a></li><li><a href="https://mashukabu.com/excel-vba-howto-use-rtrim/">VBA RTrim関数の使い方｜末尾の空白を一括削除する方法</a></li><li><a href="https://mashukabu.com/excel-vba-howto-remove-space/">VBAで空白を削除する方法｜Trim・Replace・全角スペースの対処法まとめ</a></li><li><a href="https://mashukabu.com/vba-trim-ltrim-rtrim/">VBAのTrim・LTrim・RTrim関数で文字列の空白を除去する方法</a></li><li><a href="https://mashukabu.com/excel-vba-howto-use-worksheetfunction/">VBAでWorksheetFunctionを使う方法｜Excel関数をマクロで活用する</a></li><li><a href="https://mashukabu.com/about-nbsp/">Excelで消えない空白の正体と消し方｜ノーブレークスペース完全対策ガイド</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/vba-worksheetfunction-trim/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>VBAのTrim・LTrim・RTrim関数で文字列の空白を除去する方法｜WorksheetFunction.Trimとの違いも解説</title>
		<link>https://mashukabu.com/vba-trim-ltrim-rtrim/</link>
					<comments>https://mashukabu.com/vba-trim-ltrim-rtrim/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Mon, 08 Jun 2026 15:50:34 +0000</pubDate>
				<category><![CDATA[VBA・マクロ]]></category>
		<category><![CDATA[LTrim]]></category>
		<category><![CDATA[RTrim]]></category>
		<category><![CDATA[Trim]]></category>
		<category><![CDATA[VBA]]></category>
		<category><![CDATA[マクロ]]></category>
		<category><![CDATA[文字列操作]]></category>
		<category><![CDATA[空白除去]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=7845</guid>

					<description><![CDATA[VBAのTrim・LTrim・RTrim関数で文字列の空白を除去する方法を、3関数の違いがわかる比較表とコピペできるコードで解説。全角スペースが消えない原因と対処法、WorksheetFunction.TrimとVBA Trimの違いもフローチャートで整理します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">VBAでセルの空白を取りたいけれど、Trim・LTrim・RTrimのどれを使えばいいのか迷っていませんか？さらに「Trimをかけたのに全角スペースが消えない」と詰まった経験がある方も多いはずです。</p>



<p class="wp-block-paragraph">この記事では、VBAの空白除去でつまずきがちなポイントを <strong>比較表と判断フローチャート</strong> で一気に整理します。3つの関数の違いから、全角スペースが消えない本当の原因、<code>WorksheetFunction.Trim</code>との違いまで、コピペで動くコードつきで解説していきますね。</p>



<p class="wp-block-paragraph">各関数の詳しい使い方は個別の記事にまとめてあるので、本記事は「結局どれを使えばいいの？」を最短で解決する地図として使ってください。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-2" checked><label class="toc-title" for="toc-checkbox-2">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">VBA Trim・LTrim・RTrimの違い【結論】</a><ol><li><a href="#toc2" tabindex="0">3関数の比較表（削除位置・構文・使う場面）</a></li><li><a href="#toc3" tabindex="0">迷ったらどれを使う？1分でわかる選び方</a></li></ol></li><li><a href="#toc4" tabindex="0">VBA Trim関数の基本と使い方</a><ol><li><a href="#toc5" tabindex="0">Trimの構文と基本コード（コピペで動く）</a></li><li><a href="#toc6" tabindex="0">LTrim・RTrimとの動作の違い</a></li></ol></li><li><a href="#toc7" tabindex="0">VBEの起動とコードの準備</a></li><li><a href="#toc8" tabindex="0">Trimで空白が消えないときの原因と対処法</a><ol><li><a href="#toc9" tabindex="0">全角スペースはTrimでは消えない</a></li><li><a href="#toc10" tabindex="0">タブ・改行・NBSPもTrimの対象外</a></li><li><a href="#toc11" tabindex="0">どの空白をどう消す？判断フローチャート</a></li></ol></li><li><a href="#toc12" tabindex="0">WorksheetFunction.TrimとVBA Trimの違い</a><ol><li><a href="#toc13" tabindex="0">中間の連続スペースの扱いが違う</a></li><li><a href="#toc14" tabindex="0">VBAからワークシート版Trimを呼ぶ方法</a></li></ol></li><li><a href="#toc15" tabindex="0">実務で使えるTrim・LTrim・RTrimの活用コード</a><ol><li><a href="#toc16" tabindex="0">コピペデータの先頭空白を一括削除（LTrim）</a></li><li><a href="#toc17" tabindex="0">氏名フィールドの全角スペースを正しく除去する</a></li><li><a href="#toc18" tabindex="0">シート全体の前後空白をまとめてクレンジング（Trim）</a></li></ol></li><li><a href="#toc19" tabindex="0">まとめ｜Trim・LTrim・RTrimの使い分け早見表</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">VBA Trim・LTrim・RTrimの違い【結論】</span></h2>



<p class="wp-block-paragraph">先に結論からお伝えします。VBAのTrim・LTrim・RTrimは、<strong>削除する「位置」だけが違う</strong> 3兄弟です。動作そのものはほぼ同じで、空白を消す場所が「前後」「先頭だけ」「末尾だけ」と分かれているだけなんですね。</p>



<h3 class="wp-block-heading"><span id="toc2">3関数の比較表（削除位置・構文・使う場面）</span></h3>



<p class="wp-block-paragraph">3つの関数を「構文・削除位置・戻り値・使う場面」の4軸で横並びにすると、違いが一目でわかります。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>構文</th><th>削除位置</th><th><code>"  VBA 入門  "</code> の戻り値</th><th>こんなときに使う</th></tr></thead><tbody><tr><td><strong>LTrim</strong></td><td><code>LTrim(文字列)</code></td><td>先頭のみ</td><td><code>"VBA 入門  "</code></td><td>先頭のパディングだけ消したい</td></tr><tr><td><strong>RTrim</strong></td><td><code>RTrim(文字列)</code></td><td>末尾のみ</td><td><code>"  VBA 入門"</code></td><td>末尾の余分な空白だけ消したい</td></tr><tr><td><strong>Trim</strong></td><td><code>Trim(文字列)</code></td><td>先頭＋末尾</td><td><code>"VBA 入門"</code></td><td>前後どちらの空白も不要</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">3つに共通する大事なポイントが2つあります。</p>



<ul class="wp-block-list"><li><strong>中間（文字列の途中）の空白には一切手をつけない</strong>。<code>"VBA 入門"</code> のような単語間のスペースはそのまま残ります。</li><li><strong>削除できるのは半角スペースだけ</strong>。全角スペースは消えません（これが後述する最大の落とし穴です）。</li></ul>



<h3 class="wp-block-heading"><span id="toc3">迷ったらどれを使う？1分でわかる選び方</span></h3>



<p class="wp-block-paragraph">実務で迷ったら、次の3ステップで選べばOKです。</p>



<ol class="wp-block-list"><li><strong>前後どちらも消したい → Trim</strong>。いちばん出番が多いのはこれです。とりあえずTrimを覚えておけば9割の場面に対応できます。</li><li><strong>先頭だけ消したい → LTrim</strong>。固定長データの先頭パディングなど、「末尾の空白は残したい」明確な理由があるときだけ使います。</li><li><strong>末尾だけ消したい → RTrim</strong>。CSVや基幹システム出力で末尾にスペースが付くケースで活躍します。</li></ol>



<p class="wp-block-paragraph">「<code>LTrim</code>と<code>RTrim</code>を両方かけたい」と思ったら、それは<code>Trim</code>を使う場面です。<code>LTrim(RTrim(s))</code>と入れ子にするより、<code>Trim(s)</code>のほうが簡潔でコードの意図も伝わりやすいですよ。</p>



<p class="wp-block-paragraph">それぞれの関数を深掘りしたい方は、<a href="https://mashukabu.com/excel-vba-howto-use-trim/">VBA Trim関数の使い方</a>・<a href="https://mashukabu.com/excel-vba-howto-use-ltrim/">LTrim関数の使い方</a>・<a href="https://mashukabu.com/excel-vba-howto-use-rtrim/">RTrim関数の使い方</a>で実践コードつきの解説をしています。</p>



<h2 class="wp-block-heading"><span id="toc4">VBA Trim関数の基本と使い方</span></h2>



<p class="wp-block-paragraph">3関数の代表として、まずはTrimの基本動作を押さえておきましょう。Trimさえ理解すれば、LTrim・RTrimは「位置が違うだけ」なのですぐ応用できます。</p>



<h3 class="wp-block-heading"><span id="toc5">Trimの構文と基本コード（コピペで動く）</span></h3>



<p class="wp-block-paragraph">Trimの構文はとてもシンプルです。</p>



<pre class="wp-block-code"><code>Trim(文字列)</code></pre>



<p class="wp-block-paragraph">引数に文字列を渡すと、前後の半角スペースを取り除いた文字列が返ってきます。まずは動作確認用のコードを試してみましょう。VBE（後述）の標準モジュールに、以下をそのまま貼り付けてF5キーで実行してください。</p>



<pre class="wp-block-code"><code>Sub Trimの動作確認()

    Dim sBefore As String '--- 変換前の文字列 ---
    Dim sAfter As String  '--- 変換後の文字列 ---

    sBefore = &quot;   Excel VBA   &quot;
    sAfter = Trim(sBefore)

    '--- 結果をメッセージボックスで確認 ---
    MsgBox &quot;変換前: [&quot; &amp; sBefore &amp; &quot;]&quot; &amp; vbCrLf &amp; _
           &quot;変換後: [&quot; &amp; sAfter &amp; &quot;]&quot;, vbInformation

End Sub</code></pre>



<p class="wp-block-paragraph">角括弧で囲んでいるので、前後のスペースが消えたことが一目でわかります。前後に空白がない文字列を渡してもエラーにはならず、元の文字列がそのまま返るので、「空白があるか事前にチェックしなきゃ」と心配する必要はありません。</p>



<p class="wp-block-paragraph">なお、正式には<code>Strings.Trim</code>と書きますが、<code>Strings</code>はVBAの標準ライブラリ名なので通常は省略できます。もし複数ライブラリを参照していて「あいまいな名前が検出されました」というエラーが出たら、<code>Strings.Trim</code>とフル修飾で書けば解決しますよ。</p>



<h3 class="wp-block-heading"><span id="toc6">LTrim・RTrimとの動作の違い</span></h3>



<p class="wp-block-paragraph">同じ文字列をLTrim・RTrim・Trimに渡すと、削除される位置の違いがはっきり見えます。</p>



<pre class="wp-block-code"><code>Sub 3関数の違いを比較()

    Dim s As String
    s = &quot;   VBA 入門   &quot;

    Debug.Print &quot;[&quot; &amp; LTrim(s) &amp; &quot;]&quot;  '--- 結果: [VBA 入門   ]（末尾残る） ---
    Debug.Print &quot;[&quot; &amp; RTrim(s) &amp; &quot;]&quot;  '--- 結果: [   VBA 入門]（先頭残る） ---
    Debug.Print &quot;[&quot; &amp; Trim(s) &amp; &quot;]&quot;   '--- 結果: [VBA 入門]（前後消える） ---

End Sub</code></pre>



<p class="wp-block-paragraph"><code>Debug.Print</code>の結果はイミディエイトウィンドウに表示されます。3つを並べると、LTrimは左、RTrimは右、Trimは両方を削っているのがよくわかりますね。どの関数も中間の半角スペース（<code>VBA</code>と<code>入門</code>の間）は残したままです。</p>



<h2 class="wp-block-heading"><span id="toc7">VBEの起動とコードの準備</span></h2>



<p class="wp-block-paragraph">ここまでのコードを試すには、VBE（Visual Basic Editor）を開いてコードを書く場所を用意します。すでにVBEに慣れている方は、このセクションは読み飛ばして構いません。</p>



<p class="wp-block-paragraph">Excelを開いた状態で、キーボードの <strong>Alt + F11</strong> を押すとVBEのウィンドウが表示されます。リボンから開く場合は「開発」タブ →「Visual Basic」をクリックしてください。「開発」タブが見当たらないときは、「ファイル」→「オプション」→「リボンのユーザー設定」で「開発」にチェックを入れると表示されます。</p>



<p class="wp-block-paragraph">VBEが開いたら、コードを書く場所（標準モジュール）を追加します。</p>



<ol class="wp-block-list"><li>メニューバーの「挿入」→「標準モジュール」をクリック</li><li>左側のプロジェクトエクスプローラーに「Module1」が追加される</li><li>右側のコードウィンドウにコードを書く</li></ol>



<p class="wp-block-paragraph">VBEの画面構成をもっと詳しく知りたい方は、<a href="https://mashukabu.com/excel-vba-vbe-menu-explanation/">VBEの画面の見方と基本操作</a>も参考にしてみてください。なお、マクロを含むファイルは必ず <strong>マクロ有効ブック（.xlsm）</strong> 形式で保存してくださいね。通常の.xlsx形式で保存するとコードが失われてしまいます。</p>



<h2 class="wp-block-heading"><span id="toc8">Trimで空白が消えないときの原因と対処法</span></h2>



<p class="wp-block-paragraph">「Trimをかけたのに空白が残っている」——これはVBAの空白処理でいちばん多いつまずきです。原因のほとんどは、<strong>Trim系では消せない種類の空白</strong> が混じっていることにあります。</p>



<h3 class="wp-block-heading"><span id="toc9">全角スペースはTrimでは消えない</span></h3>



<p class="wp-block-paragraph">最初に、いちばん大事なファクトをはっきりさせておきます。</p>



<p class="wp-block-paragraph"><strong>VBAのTrim・LTrim・RTrimが削除できるのは、半角スペース（Chr(32)）だけです。全角スペース（ChrW(12288)）は削除されません。</strong></p>



<p class="wp-block-paragraph">一部のサイトや解説では「VBA Trimで全角スペースも消える」と書かれていることがありますが、これは誤りです。実際に試すと、全角スペースはそのまま残ります。</p>



<pre class="wp-block-code"><code>Sub 全角スペースは消えないことを確認()

    Dim s As String
    s = &quot;　東京都　&quot;  '--- 前後は全角スペース ---

    Debug.Print &quot;[&quot; &amp; Trim(s) &amp; &quot;]&quot;
    '--- 結果: [　東京都　]（全角スペースは残ったまま） ---

End Sub</code></pre>



<p class="wp-block-paragraph">日本語入力の切り替え忘れで先頭に全角スペースが入る、というのは事務作業で本当によく起こります。「Trimしたのに消えない」と感じたら、まずは全角スペースを疑ってください。対処法は後述しますが、<code>Replace</code>関数で個別に消すのが基本です。</p>



<h3 class="wp-block-heading"><span id="toc10">タブ・改行・NBSPもTrimの対象外</span></h3>



<p class="wp-block-paragraph">全角スペース以外にも、Trim系で消えない「空白に見える文字」があります。次の表で整理しておきましょう。</p>



<figure class="wp-block-table"><table><thead><tr><th>文字</th><th>文字コード</th><th>Trim系で消える？</th><th>主な混入経路</th></tr></thead><tbody><tr><td>半角スペース</td><td>Chr(32)</td><td>前後のみ消える</td><td>CSV末尾・手入力</td></tr><tr><td>全角スペース</td><td>ChrW(12288)</td><td>消えない</td><td>日本語入力の切替忘れ</td></tr><tr><td>タブ</td><td>Chr(9)</td><td>消えない</td><td>TSVインポート</td></tr><tr><td>改行（LF / CR）</td><td>Chr(10) / Chr(13)</td><td>消えない</td><td>セル内改行・他システム連携</td></tr><tr><td>NBSP</td><td>Chr(160)</td><td>消えない</td><td>Webページからのコピペ</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">特に厄介なのが <strong>NBSP（ノーブレークスペース）</strong> です。Webページからコピーしたデータに紛れ込みやすく、見た目はただの半角スペースなのにTrimでは消えません。</p>



<p class="wp-block-paragraph">VLOOKUPが完全一致のはずなのに #N/A を返す、という原因不明のトラブルの正体がこれだったりします。NBSPの詳しい対策は<a href="https://mashukabu.com/about-nbsp/">ノーブレークスペース完全対策ガイド</a>で解説しています。</p>



<p class="wp-block-paragraph">「Trimしても消えない空白」の正体を突き止めたいときは、<code>AscW</code>関数で文字コードを調べるのが確実です。</p>



<pre class="wp-block-code"><code>Sub 消えない空白の正体を調べる()

    Dim s As String, i As Long
    s = Range(&quot;A1&quot;).Value  '--- 調べたいセル ---

    For i = 1 To Len(s)
        Debug.Print &quot;位置&quot; &amp; i &amp; &quot;: [&quot; &amp; Mid(s, i, 1) &amp; _
                    &quot;] → AscW=&quot; &amp; AscW(Mid(s, i, 1))
    Next i

End Sub</code></pre>



<p class="wp-block-paragraph">AscWの結果が <strong>32なら半角スペース、160ならNBSP、12288なら全角スペース</strong> です。正体さえわかれば、対応する<code>Replace</code>文を書くだけで解決できます。</p>



<h3 class="wp-block-heading"><span id="toc11">どの空白をどう消す？判断フローチャート</span></h3>



<p class="wp-block-paragraph">空白の種類が整理できたら、あとは「どの関数を使うか」を判断するだけ。次のフローで考えると迷いません。</p>



<ol class="wp-block-list"><li><strong>半角スペースが前後だけ？</strong> → そのまま <strong>Trim（LTrim / RTrim）</strong> でOK。</li><li><strong>半角スペースが文字列の途中で連続している？</strong> → <strong>WorksheetFunction.Trim</strong> で1つに圧縮（次のセクションで解説）。</li><li><strong>全角スペースが混ざっている？</strong> → <strong><code>Replace(s, ChrW(12288), "")</code></strong> で削除。半角に統一したいなら<code>StrConv(s, vbNarrow)</code>で全角→半角変換してからTrim。</li><li><strong>NBSP・タブ・改行が混ざっている？</strong> → <strong><code>Replace</code></strong> でそれぞれの文字コードを指定して削除。</li></ol>



<p class="wp-block-paragraph">つまり、<strong>「半角スペースの前後」だけがTrim系の守備範囲</strong> で、それ以外はすべてReplaceや別の関数の出番、と覚えておけば判断に迷いません。具体的なReplaceの使い方は<a href="https://mashukabu.com/vba-replace-function/">VBA Replace関数の使い方</a>で詳しく解説しています。</p>



<h2 class="wp-block-heading"><span id="toc12">WorksheetFunction.TrimとVBA Trimの違い</span></h2>



<p class="wp-block-paragraph">VBAには、これまで紹介したTrimのほかに <code>WorksheetFunction.Trim</code> という書き方もあります。名前がそっくりなので混同しがちですが、<strong>動作はまったくの別物</strong> です。ここを押さえておくと「Trimしたのに中間の空白が残る」トラブルを避けられます。</p>



<h3 class="wp-block-heading"><span id="toc13">中間の連続スペースの扱いが違う</span></h3>



<p class="wp-block-paragraph">2つの最大の違いは、<strong>文字列の途中にある連続スペースの扱い</strong> です。</p>



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th>VBA Trim</th><th>WorksheetFunction.Trim</th></tr></thead><tbody><tr><td>前後の半角スペース</td><td>削除する</td><td>削除する</td></tr><tr><td>中間の連続スペース</td><td>そのまま残す</td><td>1つに圧縮する</td></tr><tr><td>全角スペース</td><td>削除しない</td><td>削除しない</td></tr><tr><td>NBSP（Chr(160)）</td><td>削除しない</td><td>削除しない</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">VBA Trimは前後しか触りませんが、WorksheetFunction.Trim（＝ワークシート関数のTRIMと同じ動作）は前後に加えて中間の連続スペースまで1つにまとめるのが最大の違い。実際に比べてみましょう。</p>



<pre class="wp-block-code"><code>Sub 中間スペースの扱いを比較()

    Dim s As String
    s = &quot;田中  太郎  &quot;  '--- 中間に半角スペース2つ ---

    Debug.Print &quot;[&quot; &amp; Trim(s) &amp; &quot;]&quot;
    '--- VBA Trim → [田中  太郎]（中間は2つのまま残る） ---

    Debug.Print &quot;[&quot; &amp; Application.WorksheetFunction.Trim(s) &amp; &quot;]&quot;
    '--- ワークシート版 → [田中 太郎]（中間が1つに圧縮される） ---

End Sub</code></pre>



<p class="wp-block-paragraph">「氏名の途中に余分なスペースが入ってしまったデータを、見栄えよく整えたい」——そんなときはWorksheetFunction.Trimの出番です。逆に「前後だけ確実に消したい」場面ではVBA Trimで十分。中間まで勝手に圧縮されないぶん、データを意図せず変えてしまう心配がありません。</p>



<p class="wp-block-paragraph">なお、どちらも <strong>全角スペースは消せない</strong> 点は共通です。ワークシート関数版だからといって全角に対応するわけではないので注意してください。</p>



<h3 class="wp-block-heading"><span id="toc14">VBAからワークシート版Trimを呼ぶ方法</span></h3>



<p class="wp-block-paragraph">VBAのコード内からワークシート版のTrimを使いたいときは、次のように書きます。</p>



<pre class="wp-block-code"><code>Application.WorksheetFunction.Trim(対象文字列)</code></pre>



<p class="wp-block-paragraph"><code>Application.</code>は省略して<code>WorksheetFunction.Trim(s)</code>と書いても動きます。VBA Trimとの使い分けは、</p>



<ul class="wp-block-list"><li><strong>前後だけ消せば十分</strong> → <code>Trim(s)</code>（VBA版）</li><li><strong>中間の連続スペースも1つにまとめたい</strong> → <code>WorksheetFunction.Trim(s)</code>（ワークシート版）</li></ul>



<p class="wp-block-paragraph">と覚えておくと迷いません。ワークシート上の数式としてのTRIM関数について詳しくは、<a href="https://mashukabu.com/excel-function-howto-use-trim/">ExcelのTRIM関数の使い方</a>で解説しています。</p>



<h2 class="wp-block-heading"><span id="toc15">実務で使えるTrim・LTrim・RTrimの活用コード</span></h2>



<p class="wp-block-paragraph">ここからは、3関数の使い分けを実感できる実務コードを3つ紹介します。いずれもVarType判定で文字列セルだけを処理しているので、数値や日付のセルが混ざっていても安全に動きます。</p>



<h3 class="wp-block-heading"><span id="toc16">コピペデータの先頭空白を一括削除（LTrim）</span></h3>



<p class="wp-block-paragraph">他システムや固定長データからコピーしたデータは、桁を揃えるために先頭にスペースが詰められていることがあります。「末尾の空白は意味があるので残したいが、先頭のパディングだけ消したい」——そんなときはLTrimの出番です。</p>



<pre class="wp-block-code"><code>Sub A列の先頭空白を一括削除()

    Dim ws As Worksheet '--- 対象シート ---
    Dim cell As Range   '--- ループ用セル ---

    Set ws = ActiveSheet

    '--- A列の各セルから先頭の半角スペースを削除 ---
    For Each cell In ws.Range(&quot;A1:A&quot; &amp; ws.Cells(ws.Rows.Count, 1).End(xlUp).Row)
        If VarType(cell.Value) = vbString Then
            cell.Value = LTrim(cell.Value)
        End If
    Next cell

    MsgBox &quot;A列の先頭空白を削除しました。&quot;, vbInformation

End Sub</code></pre>



<p class="wp-block-paragraph">ここでのポイントは、TrimではなくLTrimを選ぶこと。前後まとめて消したいならTrimですが、「先頭だけ」という明確な意図があるならLTrimのほうがコードの意図が伝わります。<code>For Each</code>の基本は<a href="https://mashukabu.com/excel-vba-howto-use-ltrim/">LTrim関数の使い方</a>でも触れています。</p>



<h3 class="wp-block-heading"><span id="toc17">氏名フィールドの全角スペースを正しく除去する</span></h3>



<p class="wp-block-paragraph">事務作業で頻発するのが、氏名の前後に全角スペースが入ってしまうケースです。前述のとおりTrimでは全角スペースを消せないので、<code>Replace</code>で全角スペースを消してからTrimで半角スペースを仕上げる、という二段構えが定番になります。</p>



<pre class="wp-block-code"><code>Sub 氏名の全角スペースを正しく除去()

    Dim ws As Worksheet '--- 対象シート ---
    Dim cell As Range   '--- ループ用セル ---
    Dim sVal As String  '--- セルの値 ---

    Set ws = ActiveSheet

    For Each cell In ws.UsedRange
        If VarType(cell.Value) = vbString Then
            sVal = cell.Value

            '--- Step1: 全角スペースを削除（Trimでは消せない） ---
            sVal = Replace(sVal, ChrW(12288), &quot;&quot;)

            '--- Step2: 残った前後の半角スペースを削除 ---
            sVal = Trim(sVal)

            cell.Value = sVal
        End If
    Next cell

    MsgBox &quot;氏名フィールドの空白を除去しました。&quot;, vbInformation

End Sub</code></pre>



<p class="wp-block-paragraph">処理の順番が重要。先に<code>Replace</code>で全角スペースを消し、最後に<code>Trim</code>で半角スペースを仕上げます。「Trimだけで済ませようとして全角が残る」という典型的な失敗を、この二段構えで確実に防げます。</p>



<h3 class="wp-block-heading"><span id="toc18">シート全体の前後空白をまとめてクレンジング（Trim）</span></h3>



<p class="wp-block-paragraph">「どの列に空白が混じっているか分からない」というときは、UsedRange全体を走査して前後空白をまとめて削除するのがいちばん手軽です。前後どちらも対象なのでTrimを使います。</p>



<pre class="wp-block-code"><code>Sub シート全体の前後空白をクレンジング()

    Dim ws As Worksheet '--- 対象シート ---
    Dim cell As Range   '--- ループ用セル ---
    Dim lCount As Long  '--- 処理件数カウンタ ---

    Set ws = ActiveSheet

    For Each cell In ws.UsedRange
        '--- 文字列セルかつ数式でないセルだけを処理 ---
        If VarType(cell.Value) = vbString And Not cell.HasFormula Then
            cell.Value = Trim(cell.Value)
            lCount = lCount + 1
        End If
    Next cell

    MsgBox lCount &amp; &quot; 件のセルから前後の空白を削除しました。&quot;, vbInformation

End Sub</code></pre>



<p class="wp-block-paragraph">ポイントは<code>And Not cell.HasFormula</code>の一文。VLOOKUPやTEXT関数など結果が文字列になる数式セルも<code>VarType</code>ではvbStringを返すため、これを入れておかないと数式を計算結果の文字列で上書きしてしまう恐れがあります。</p>



<p class="wp-block-paragraph">計算式と手入力データが混在する業務ファイルでは、この一行が事故防止に効いてきますよ。空白処理の全体像は<a href="https://mashukabu.com/excel-vba-howto-remove-space/">VBAで空白を削除する方法まとめ</a>で一覧できます。</p>



<h2 class="wp-block-heading"><span id="toc19">まとめ｜Trim・LTrim・RTrimの使い分け早見表</span></h2>



<p class="wp-block-paragraph">最後に、VBAの空白除去の使い分けを早見表でおさらいしましょう。</p>



<figure class="wp-block-table"><table><thead><tr><th>やりたいこと</th><th>使う関数・方法</th></tr></thead><tbody><tr><td>前後の半角スペースを消す</td><td><strong>Trim</strong></td></tr><tr><td>先頭の半角スペースだけ消す</td><td><strong>LTrim</strong></td></tr><tr><td>末尾の半角スペースだけ消す</td><td><strong>RTrim</strong></td></tr><tr><td>中間の連続スペースを1つに圧縮</td><td><strong>WorksheetFunction.Trim</strong></td></tr><tr><td>全角スペースを消す</td><td><strong>Replace(s, ChrW(12288), &#8220;&#8221;)</strong></td></tr><tr><td>NBSP・タブ・改行を消す</td><td><strong>Replace</strong> で各文字コードを指定</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">押さえるべきポイントは次の3つです。</p>



<ul class="wp-block-list"><li><strong>Trim・LTrim・RTrimの違いは「削除する位置」だけ</strong>。迷ったらTrimでOK。</li><li><strong>3関数が消せるのは半角スペースだけ</strong>。全角スペースやNBSPは消えないので、<code>Replace</code>を併用する。</li><li><strong>中間の連続スペースを整えたいときはWorksheetFunction.Trim</strong>。VBA Trimは前後しか触らない。</li></ul>



<p class="wp-block-paragraph">空白の処理は地味ですが、VLOOKUPの照合ミスや集計ズレを防ぐ大切な前処理です。本記事の比較表とフローチャートを手元の地図にして、クリーンなデータを手に入れてくださいね。各関数の実践コードをもっと見たい方は、<a href="https://mashukabu.com/excel-vba-howto-use-trim/">VBA Trim関数の使い方</a>・<a href="https://mashukabu.com/excel-vba-howto-use-ltrim/">LTrim関数の使い方</a>・<a href="https://mashukabu.com/excel-vba-howto-use-rtrim/">RTrim関数の使い方</a>もあわせてどうぞ。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/vba-trim-ltrim-rtrim/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
