Excel の空白行を一括で削除または非表示にさせたいときはないでしょうか。
けど、そんな中で悩むことは、
・ショートカットやVBAで効率的に行いたいがやり方がわからない。
ですよね。
今回はそんなお悩みを解決する
・空白行を判定し削除または非表示にするショートカット
・空白行を判定し、行を削除、非表示にするVBA
についてまとめます!
1セルづつしっかりと空白判定を行い、削除/非表示にする場合はVBAを選択しましょう。
もくじ
空白行を判定し削除または非表示にする基本操作
空白行を削除する
対象の表を選択します。
ホームタブを選択します。
編集グループの検索と選択>ジャンプをクリックします。
「ジャンプ」メニューのセル選択をクリックします。
「選択オプション」メニューの空白セルを選択し、OKをクリックします。
空白セルが選択されました。
セルグループの削除>シートの行を削除をクリックします。
空白行が削除されましたね。
空白行を非表示にする
空白セルの選択まで上記手順を参考に実施します。
セルグループの書式>非表示/再表示>行を表示しないをクリックします。
空白行が非表示になりましたね。
空白行を判定し削除または非表示にするショートカット
空白行を削除するショートカット
空白行を削除するショートカットは以下の順序で操作してくdさい。
表を選択します。
Ctrl + G
Alt + S
Alt + K
Enter
Alt + H
Alt + D
Alt + R
空白行を非表示にするショートカット
空白行を非表示にするショートカットは以下の順序で操作してくdさい。
表を選択します。
Ctrl + G
Alt + S
Alt + K
Enter
Alt + H
Alt + O
Alt + U
Alt + R
空白行を判定し、行を削除、非表示にするVBA
基本操作の場合、空白判定行に空白でないセルがあったとしても、行の削除/非表示の操作を行った場合は、削除/非表示となってしまいます。
選択行のセルがすべて空白だった場合のみ処理を行いたい場合は以下のVBAを利用しましょう。
空白行を判定し行を削除するVBA
空白行を判定し行を削除するVBAとなります。
表の範囲は”A1:J7″としていますが、処理対象によって変更をしてください。
なお、指定範囲外の空白判定は行われません。
Sub 空白行を判定し削除する()
Dim arrTemp As Variant
Dim a As Integer
Dim b As Integer
Dim c As Integer
Dim intToprw As Long
Dim intEndrw As Long
c = 0
'スクリーンの更新を無効化
Application.ScreenUpdating = False
'表の値を配列に格納
arrTemp = Range("A1:J7")
'開始する行
intToprw = LBound(arrTemp, 1)
'終了する行
intEndrw = UBound(arrTemp, 1)
'行数分繰り返す
For a = intToprw To intEndrw
Debug.Print a
Debug.Print intEndrw
'列数分繰り返す
For b = LBound(arrTemp, 2) To UBound(arrTemp, 2)
'空白セルカウント
If arrTemp(a, b) = "" Then
c = c + 1
End If
Next
'空白セルが列数分あった場合非表示
If c = UBound(arrTemp, 2) Then
Rows(a).Delete
intEndrw = intEndrw - 1
a = a - 1
End If
If intEndrw < 0 Then
Exit For
End If
'空白セルカウント初期化
c = 0
Next
'スクリーンの更新を有効化
Application.ScreenUpdating = True
End Sub
削除できましたね。
空白行を判定し行を非表示にするVBA
空白行を判定し行を非表示にするVBAとなります。
削除バージョンと同じく、表の範囲は”A1:J7″としていますが、処理対象によって変更をしてください。
なお、指定範囲外の空白判定は行われません。
Sub 空白行を判定し非表示にする()
Dim arrTemp As Variant
Dim a As Integer
Dim b As Integer
Dim c As Integer
c = 0
'スクリーンの更新を無効化
Application.ScreenUpdating = False
'表の値を配列に格納
arrTemp = Range("A1:J7")
'行数分繰り返す
For a = LBound(arrTemp, 1) To UBound(arrTemp, 1)
'列数分繰り返す
For b = LBound(arrTemp, 2) To UBound(arrTemp, 2)
'空白セルカウント
If arrTemp(a, b) = "" Then
c = c + 1
End If
Next
'空白セルが列数分あった場合非表示
If c = UBound(arrTemp, 2) Then
Rows(a).Hidden = True
End If
'空白セルカウント初期化
c = 0
Next
'スクリーンの更新を有効化
Application.ScreenUpdating = True
End Sub
非表示となりましたね。
VBAの実装手順
実装手順は以下の通りです。
①Excelを新規に開き、「開発」タブをクリックし、「VisualBasic」をクリックします。
もしくはショートカットキー「Alt」+「F11」でもOKです。
②標準モジュールを追加します。
左ペインのVBAProjectを右クリックし、「挿入」、「標準モジュール」を選択します。
③右ペインのウインドウに上記のVBAを入力します。
こちらで完了です。
VBAを実行する
では早速VBAの実行をしてみましょう。
①「開発」タブの「VBA」をクリックし実行したいマクロを選択し、「実行」をクリックします。
②処理がされたことが確認できれば完了です。
※完了メッセージやステータス管理など必要に応じて実装してもらえばと思います。
さいごに
いかがでしょうか。
今回は、
・空白行を判定し削除または非表示にするショートカット
・空白行を判定し、行を削除、非表示にするVBA
についてまとめました。
また、他にも便利な方法がありますので、よろしければご参照頂ければと思います。
コメントを残す