『条件により列も非表示したい』(ヒロ坊)
お尋ねします。
以下は、実際に設定しているもので、条件により行を非表示にするものです。
これに、列も非表示にしたいのです。
J116:L116のセルが0の場合は、その列(J列〜L列)を非表示にしたいというものです。
どうぞよろしくお願いします。
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Const pw As String = "11100"
Dim rr As Range, r As Range
If Intersect(Target, Range("D2")) Is Nothing Then Exit Sub
ActiveSheet.Unprotect Password:=pw
Set rr = Rows("21:82")
rr.Hidden = False
For Each r In rr.Rows
If r.Range("N1").Value = 0 Then
r.Hidden = True
End If
Next
ActiveSheet.Protect Password:=pw
End Sub
< 使用 Excel:Excel2021、使用 OS:Windows11 >
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Const pw As String = "11100"
Dim rr As Range, r As Range
If Intersect(Target, Range("D2")) Is Nothing Then Exit Sub
Application.EnableEvents = False
ActiveSheet.Unprotect Password:=pw
Set rr = Rows("21:82")
rr.Hidden = False
For Each r In rr.Rows
If r.Range("N1").Value = 0 Then
r.Hidden = True
End If
Next r
If Application.WorksheetFunction.CountIf(Range("J116:L116"), "<>0") = 0 Then
Columns("J:L").Hidden = True
Else
Columns("J:L").Hidden = False
End If
ActiveSheet.Protect Password:=pw
Application.EnableEvents = True
End Sub
(稚拙) 2026/06/19(金) 11:56:02
With Rows("21:82")
.Hidden = False
For Each r In .Rows
If r.Columns("N").Value = 0 Then r.Hidden = True
Next
End With
↑と同じ感じの処理にするとしたら↓こんな感じでしょうか?
With Columns("J:L")
.Hidden = False
For Each r In .Columns
If r.Rows("116").Value = 0 Then r.Hidden = True
Next
End With
(白茶) 2026/06/19(金) 14:09:39
■1
提示のコードの主要部分だけを抜き出して整理すると↓のようになります。
Sub 整理()
Dim r As Range
'▼行方向のチェック
Stop 'ブレークポイントの代わり
For Each r In Range("N21:N82")
If r.Value = 0 Then
r.EntireRow.Hidden = True
End If
Next
End Sub
■2
そのうえで、列方向のチェックを加えたいということですから↓のようにすべきといわれているだけです。
Sub 整理改()
Dim r As Range
'▼行方向のチェック
Stop 'ブレークポイントの代わり
For Each r In Range("N21:N82")
If r.Value = 0 Then
r.EntireRow.Hidden = True
End If
Next
'▼列方向のチェック ←【こいつを追加】
Stop 'ブレークポイントの代わり
For Each r In Range("J116:L116")
If r.Value = 0 Then
r.EntireColumn.Hidden = True
End If
Next
End Sub
■3
Withステートメントについては↓などで学習されたらよいとおもいます。
【参考】 http://officetanaka.net/excel/vba/beginner/16.htm
(もこな2) 2026/06/19(金) 16:55:59
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.