セル内のスペースを取り除く(Microsoft Excel)
キャロルは別のプログラムからExcelに情報をインポートします。これにより、一部のセルに余分なスペースが残ることがよくあります。セル内にあるのはスペースだけなので、空のように見えますが、実際にはそうではありません。キャロルは、これらの不要なスペースを取り除くための最良の方法について疑問に思いました。
使用できるアプローチはいくつかあります。 1つは、Excelの検索および置換機能を使用することです。次の手順に従ってください:
。 Ctrl + Hを押して、[検索と置換]ダイアログボックスの[置換]タブを表示します。
。 [検索する文字列]ボックスに、2つのスペースを入力します。
。 [置換]ボックスが空であることを確認してください。
。 [セルの内容全体に一致する]チェックボックスをオンにします。
。 [すべて置換]をクリックします。
。 Excelで一致するものがなくなるまで、[すべて置換]をクリックし続けます。
。手順2から5を繰り返しますが、今回は手順2で1つのスペースのみを使用します。
。 [検索と置換]ダイアログボックスを閉じます。
別のオプションは、ワークシートのトリム機能を使用することです。このアプローチは、変更するセルがすべてワークシートの特定の領域(単一の列など)にある場合に便利です。たとえば、列Dのセルからスペースを削除する場合は、次の数式を使用できます。
=Trim(D1)
Trim関数は、セルD1の内容を先頭または末尾のスペースなしで返します。次に、この数式の結果をコピーし、[形式を選択して貼り付け]を使用して、必要なセルに値を貼り付けることができます。
もちろん、処理する必要のあるワークシートがたくさんある場合、またはセルに余分なスペースを含むワークブックを定期的に入手する場合は、スペースを取り除くことができるマクロを作成することをお勧めします。おそらく最も速い方法は、ワークシート内のすべてのセルを調べて、余分なスペースを取り除くことです。
Sub CleanSheet1() For Each cell In ActiveSheet.UsedRange cell.Value = Trim(cell) Next cell End Sub
マクロは各セルをステップスルーし、Trim関数を使用して先頭または末尾のスペースを取り除きます。これはすべてのセルで機能しますが、データの特性によっては、望ましくない結果が生じる可能性があります。先頭にスペースがあるセルがあり、それらのスペースが必要な場合は、別のマクロを使用する必要があります。このバージョンでは、より満足のいく結果が得られます:
Sub CleanSheet2() Dim rCell As Range Dim rText As Range Set rText = Cells.SpecialCells( _ xlCellTypeConstants, _ xlTextValues) For Each rCell In rText If Trim(rCell.Value) = "" Then rCell.ClearContents End If Next Set rText = Nothing Set rCell = Nothing End Sub
定数(ワークシート内のすべてのテキストを含む)を含むセルのみをチェックし、次にTrim関数を使用するとセルが空になるかどうかをチェックします。その場合、セルはクリアされます。 Trim関数でセルが空にならない場合、セルは変更されません。
注:
このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。
_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。
このヒント(12471)は、Microsoft Excel 2007、2010、2013、および2016に適用されます。
Excelの古いメニューインターフェイス用のこのヒントのバージョンは、次の場所にあります:
linkセル内のスペースを取り除く。