空白の列を削除する
このExcel VBAコードは、列の先頭3つのセルに値が入力されていない列を削除するものです。
Sub 空白の列削除()
'変数の宣言
Dim i As Long
Dim intColEnd As Long
'最終列の列番号を取得
intColEnd = ActiveSheet.UsedRange.Columns(ActiveSheet.UsedRange.Columns.Count).Column
'iの初期値設定
i = intColEnd
'最終列から順にループを回す
Do While i >= 1
'セルが空白かどうかを確認
If Cells(1, i).Value & Cells(2, i).Value & Cells(3, i).Value = "" Then
'空白の場合、列を削除
Columns(i).Delete
End If
'iを減算して、次の列に移動
i = i - 1
Loop
'処理完了を通知するメッセージを表示
MsgBox "完了"
End Sub
解説
変数’iと’intColEndintColEnd
が宣言され、’intColEndintColEnd
は、’ActiveSheet.UsedRange.Columns(ActiveSheet.UsedRange.Columns.Count).コラムActiveSheet.UsedRange.Columns(ActiveSheet.UsedRange.Columns.Count).Column
でアクティブなシートの最終列の列番号を取得しています。
ループは、’Do While i >= 1i
の初期値は、最終列の列番号’intColEndintColEnd
に設定されています。
次に、Cells(1, i).Value & Cells(2, i).Value & Cells(3, i).Value
を使用して、列の先頭3つのセルが空白かどうかを確認します。すべてが空白であれば、’Columns(i).削除Columns(i).Delete
を使用して列を削除します。
最後に、’i = i – 1で変数’ii
を減算し、次の列に移動します。
処理が完了したら、’MsgBox “完了を使用してメッセージを表示します。
条件を満たす列を削除する
このVBAコードは、Excelのワークシート上で、特定の条件を満たす列を削除するマクロです。
Sub 条件を満たす列を削除する()
Dim I, lCol As Long
lCol = Cells(1, Columns.Count).End(xlToLeft).Column
For I = lCol To 1 Step -1
If Cells(1, I) = "●●●" Then
Columns(I).Delete
End If
Next I
MsgBox "完了"
End Sub
解説
変数Iと変数lColを宣言しています。変数Iは、forループのカウンタ変数であり、変数lColは、ワークシート上で使用されている最後の列の番号を格納する変数です。変数lColは、後ほど使用されます。
ワークシート上で使用されている最後の列の番号を取得します。これは、Columns.Countというメソッドで全列数を取得し、xlToLeftという引数を指定することで、右から左への検索を行い、最後のセルを取得しているためです。
Forループを使用して、最後の列から順番に列をチェックしていきます。
条件式の中で、列の1行目が「●●●」である場合、その列を削除します。Columns(I)は、I列全体を表しており、Deleteメソッドを呼び出すことで、その列を削除することができます。
次の列に移動して、同じ処理を繰り返します。
行削除_特定名称 *複数条件指定
このVBAコードは、Excelシートの特定の行を削除するためのマクロです。
Sub 行削除_特定名称()
Dim i, lRow As Long
lRow = Cells(Rows.Count, "A").End(xlUp).Row
'最終行から1列目まで繰り返す
For i = lRow To 2 Step -1
'東京支店又は神奈川支店と合計が0円の行が削除
If (Cells(i, "A") = "東京支店" Or Cells(i, "A") = "神奈川支店") _
Or Cells(i, "E") = 0 Then
Rows(i).Delete
End If
Next i
MsgBox "完了"
End Sub
解説
最初に、変数’lRowFor
ループを使用して、最終行から1行目まで逆順で繰り返し処理を行います。
各行について、以下の条件を確認します。
- 列Aに”東京支店”または”神奈川支店”が含まれるかどうか。
- 列Eの値が0であるかどうか。
これらの条件がいずれか1つでも満たされた場合、’Rows(i).
このVBAコードは、指定された条件を満たす行を簡単に削除できる便利な方法です。ただし、処理が完了する前に削除される行を事前に確認することが重要です。また、行番号が変更されるため、正しい行が削除されることを確認する必要があります。
列削除_名称一致
このVBAコードは、Excelの特定のシートで実行されるマクロです。このマクロの目的は、特定の文字列を含む列を削除することです。
Sub 列削除_名称一致()
Dim i, lCol As Long
lCol = Cells(1, Columns.Count).End(xlToLeft).Column
For i = lCol To 1 Step -1
If Cells(1, i) = "性別" Then
Columns(i).Delete
End If
Next i
MsgBox "完了"
End Sub
解説
- Sub 列削除_名称一致(): この行は、サブルーチンの名前を示しています。このマクロは、列の削除に関するものです。
- Dim i, lCol As Long: 変数iとlColを宣言し、両方ともLong型であることを示しています。
- lCol = Cells(1, Columns.Count).End(xlToLeft).Column: 変数lColに、シートの最後の列の列番号を設定しています。この行は、最も右の列から左に向かって列を探索し、最初にデータがある列の番号を取得します。
- i = lCol To 1 Step -1: 変数iを最後の列の番号から始め、最初の列の番号に向かって1ずつ減らしていきます。
- Cells(1, i) = “性別” の場合: もし、セル(1, i)に”性別”という文字列があれば、以下の行を実行します。
- 列(i)。削除: 列iを削除します。
- 次の i: 次の iに進みます。
- MsgBox “完了”: マクロが完了したことを示すメッセージボックスが表示されます。
つまり、このVBAコードは、Excelシートの1行目にある文字列”性別”を含む列を削除します。
コメント