VBA

を使用した行の削除Excelでは、行の番号を右クリックして[削除]を選択することで行を削除できます。 しかし、より洗練された方法を使用して行を削除する場合は、VBAを使用する必要があります。 それはあなたが多くの異なる方法で行を削除することができます。VBAで行を削除する最も基本的な方法は、行番号を使用することです。p>

Sub deleteSpecificRow()Rows(4).DeleteEnd Sub

これは、マクロを実行するたびに4番目の行を削除します。p>

複数の行を削除します

一度にいくつかの行を削除することもできます。 行番号を選択する代わりに、行の範囲を選択します。p>

Sub deleteMultipleRows()Rows("2:4").DeleteEnd Sub

行2、3、および4が削除されます。p>

選択した行を削除

これまでのところ、コード内の固定番号の行を削除するマクロを作成しました。 今回は、選択範囲から行を削除しましょう。 次のコードを使用してみましょう。

Sub deleteSelectedRows()Selection.EntireRow.DeleteEnd Sub

空の行を削除

この例では、Excelは空白のセルを識別し、それらを選択し、それらが存在する行を削除します。/div>

このマクロは、”Bad Row”というフレーズが含まれている場合にのみ、選択範囲から行を削除します。

注意

テキストでは大文字と小文字が区別されることに注意してください。P>コード分析

Sub deleteRowswithSelectedText()For Each Cell In Selection If Cell.Value = "Bad Row" Then Rows(Cell.Row).ClearContents End IfNextSelection.SpecialCells(xlCellTypeBlanks).SelectSelection.EntireRow.DeleteEnd Sub

コード分析

2. ループは、選択範囲内の各要素を通過します。

3. Excelは実際のセル値をチェックし、値が正確に「不良行」であるかどうかを確認します。

4. 条件が満たされると、セルの内容が消去されます。 セルの位置が変更され、「悪い行」の一部が残る可能性があるため、セルを削除することはできません。

7. すべての「不良行」がクリアされると、Excelはこれらのセルを選択します。p>

8. 次に、これらのセルの行を削除します。完全一致だけでなく、このフレーズで構成される行も削除する場合は、InStr関数を使用します。 この関数は、フレーズの最初の出現位置を返します。

変更

Cell.Value = "Bad Row"

InStr(Cell, "Bad Row") > 0

ワークシート内に4つの異なる例があります。 それぞれが位置を返します。

  • “悪い行”は1を返します
  • “良い行”は0を返します
  • “1悪い行”は3を返します
  • “悪い行! これは、「良い行」を除くすべての行が削除されることを意味します。

    セルタイプが文字列である行を削除

    この例では、セルタイプが文字列である場合、行を削除します。一見すると、セルA3、A4、およびA5は同じタイプのようです。 しかし、舞台裏で何が起こっているのか(Ctrl+’)を見ると、それぞれが異なっていることがわかります。p>

    Sub deleteifString()Selection.SpecialCells(xlCellTypeConstants, 2).SelectSelection.EntireRow.DeleteEnd Sub

    二行目には、次のコードがあります。xlCellTypeConstants。 それは定数を探していることを意味します。 番号2は、テキストである第二のタイプを意味します。/p>

    Excelはテキストタイプの値のみを選択します。

    結果を返します。

    結果を返します

    偶数行/奇数行を削除します

    偶数行のみを削除しましょう。

    Sub deleteEven()For Each Cell In Selection If Cell.Row Mod 2 = 0 Then Rows(Cell.Row).ClearContents End IfNextSelection.SpecialCells(xlCellTypeBlanks).SelectSelection.EntireRow.DeleteEnd Sub

    コードは前の例と非常によく似ています。 唯一の違いがあります。セル。

    セル。行Mod2=0

    これは、除算後の余りが0(数値の場合)である場合を意味します: 2, 4, 6, 8, …) その後、数は偶数であり、それが1の場合、それは奇数です(1, 3, 5, 6, …).

    スプレッドシートとPython愛好家。

    投稿ビュー:72,354
    投稿ビュー:72,354
    投稿ビュー:72,354

コメントを残す

メールアドレスが公開されることはありません。