Robertは、ゼロ値を持つデータテーブル内のセルのすべてのインスタンスを検索し、それらのセルを削除するマクロを望んでいます。彼はこれをどうやってやるのか疑問に思います。

このヒントの目的上、Robertは実際にセルを削除するのではなく、実際にセルの値をクリアしたいと考えていると仮定します。

さらに、Excelで設定を変更するだけで簡単にできるように、彼はゼロ値を非表示にするだけではないと仮定します。

(これを行う方法は、他の_ExcelTips_で説明されています。)

実際には、ゼロ値を取り除く方法がいくつかあります。 1つの方法では、マクロを使用しませんが、代わりにExcelの検索および置換機能に依存します。

。 Ctrl + Hを押します。 Excelは、[検索と置換]ダイアログボックスの[置換]タブを表示します。

。 [オプション]ボタンをクリックして、ダイアログボックスを展開します。 (図1を参照)

。 [検索する文字列]ボックスに0を入力します。

。 [置換]ボックスが空であることを確認してください。

。 [セルの内容全体に一致する]チェックボックスをオンにします。

。 [すべて置換]をクリックして、置換を実行します。

必要に応じて、上記の手順を短い小さなマクロに変換することもできます。

Sub ReplaceZeros()

Cells.Replace What:="0", Replacement:="", _       LookAt:=xlWhole, SearchOrder:=xlByRows End Sub

このアプローチで達成できることには限界があります。特に、実際に0の値を含むセルのみが置き換えられます。 0に解決される数式は置き換えられません。たとえば、セルに0に解決される数式= 4-4が含まれている場合、セルには実際には0の値がないため、検索と置換操作はそれを無視します。

0を含むか、0に解決されるセルを実際にクリアするものが必要な場合は、別のマクロアプローチが必要になります。これが良いものです:

Sub DeleteZeroes()

Dim rCell As Range

For Each rCell In Selection         If rCell.Value = 0 Then             rCell.ClearContents         End If     Next End Sub

マクロを使用するには、影響を与えるセルを選択してからマクロを実行するだけです。選択した各セルを調べて、0の値を含むセルの内容を削除します。この場合、0に解決される数式も含まれます。

注:

このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。

_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(13437)は、Microsoft Excel 2007、2010、2013、および2016に適用されます。