Taraは、ワークシート内の一部の情報に「取り消し線」のテキストが含まれている単一のワークシートを含むワークブックを受け取ることがよくあります(テキストは取り消し線を使用してフォーマットされます)。打ち抜かれたテキストを含む行は削除する必要がありますが、Taraはこれをすばやく実行する方法がわかりません。

このタスクをたまに行う必要がある場合、取り消し線の書式が含まれているセルを簡単に確認できる場合は、次の手順が役立ちます。

。選択する最初の行の左側をクリックします。最初の行には、打ち抜かれたテキストが含まれています。行全体を選択する必要があります。

。 Ctrlキーを押しながら、削除する追加の行の左側をクリックします。 (削除する行の選択セットを作成しています。)

。 Ctrl +-(マイナスキー)を押します。行が削除されます。

打ち抜かれたテキストを含むすべての行を確認するのがそれほど簡単でない場合は、検索機能を使用してそれらを見つけることができます。

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

。 [オプション]ボタンをクリックして、ダイアログボックスで使用できるものを展開します。

。 [検索する文字列]ボックスが空であることを確認し、そのボックス内に挿入ポイントを配置します。

。 [フォーマット]ボタンをクリックします。 Excelに[形式の検索]ダイアログボックスが表示されます。

。 [フォント]タブが表示されていることを確認してください。 (おそらくデフォルトで表示されます。)

。 [取り消し線]チェックボックスが選択されていることを確認するまで、1〜2回クリックします。 (ダイアログボックスで他に何も変更する必要はありません。)

。 [OK]をクリックして、[形式の検索]ダイアログボックスを閉じます。

。 [すべて検索]をクリックします。 [検索と置換]ダイアログボックスが展開され、取り消し線の書式が含まれているセルが表示され、最初の結果(ダイアログボックス内)が選択されます。

。 Ctrl + Aを押します。これにより、ダイアログボックスのすべての結果が選択されます。

。 [閉じる]をクリックして、[形式の検索]ダイアログボックスを閉じます。取り消し線のテキストを含むすべてのセルが選択されているはずです。 (ワークシートの他の場所をクリックしないでください。クリックすると、誤ってセルの選択が解除されます。)

。 Ctrl +-(マイナスキー)を押します。 Excelに[削除]ダイアログボックスが表示されます。

。 [行全体]ラジオボタンをクリックします。

。 [OK]をクリックします。行が削除されます。

このアプローチには欠点があります。混合フォーマットを含むセルが見つからないためです。つまり、セル内の一部のテキストのみが取り消し線属性を使用している場合、そのセルは手順8で見つかりません。

この欠陥は、マクロを使用することで克服できます。さらに、このタスクを頻繁に実行する必要がある場合は、マクロが適しています。これがトリックを行うものです:

Sub DeleteSTRows()

Dim c As Range     Dim bCheck As Boolean     Dim J As Integer     Dim iRows As Integer

iRows = Selection.Rows.Count     If iRows > 2 Then         For J = iRows To 1 Step -1             bCheck = False             For Each c In Selection.Rows(J).Cells                 bCheck = IsNull(c.Font.Strikethrough)

If Not bCheck Then bCheck = c.Font.Strikethrough                 If bCheck Then Exit For             Next c             If bCheck Then Selection.Rows(J).EntireRow.Delete         Next J     End If End Sub

マクロを使用するには、影響を与えるセルを選択して実行するだけです。マクロは、選択範囲の各行(最後の行から最初の行まで)をステップスルーしてから、それらの行内の各セルをチェックします。セルに取り消し線が含まれている場合は、フラグ(bCheck)が設定され、行全体が削除されます。 (選択に1行または2行しかない場合、マクロは機能しません。手動で確認および調整するのに十分な数の行があります。)

マクロの途中で、IsNull関数が使用されていることに注意してください。これは、セルに混合フォーマットが含まれているかどうかを検出する部分です。セル内の一部の文字のみが取り消し線を使用している場合、取り消し線プロパティによってnull値が返されます。これはIsNullによってチェックされ、bCheck変数に割り当てられます。 bCheckがまだFalseの場合(セル内で取り消し線が混在して使用されていないことを意味します)、セル全体がチェックされ、必要な書式が設定されているかどうかが確認されます。

マクロで実際に行を削除したくないが、単に行をクリアしたい場合は、マクロの.Deleteメソッドを.Clearメソッドに置き換えることができることに注意してください。

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

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