>最近、VBAを学び始めた者です。
今回のような実践マクロというのは、マクロを何年やっていても、理詰めでは出来ません。
入門用と実践用では明らかにコードが違います。入門用として記録マクロ程度の簡単な書き方で可能ですが、状態が変わると、すぐにエラーが出てしまいます。以下は、何種類かのテクニックが含まれています。アンプロテクトした後に、すぐに、またプロテクトをしている所が分かりますか?
注:ただし、A1のタイトルは必ずあるものとして以下は作られています。
'//
Private Const PWS As String = "" 'パスワードは任意
Sub SpaceDelMacro()
Dim acSh As Worksheet
Set acSh = ActiveSheet 'アクティブシート
acSh.Unprotect PWS
'PassWord, UserInterFace, Filter
acSh.Protect PWS, , , , True, , , , , , , , , , True
With acSh.Range("A1", acSh.Cells(Rows.Count, 1).End(xlUp))
.AutoFilter Field:=1, Criteria1:="="
If .SpecialCells(xlCellTypeVisible).Count > 1 Then
With acSh.AutoFilter.Range
.Offset(1).Resize(.Rows.Count - 1).Delete Shift:=xlShiftUp
End With
End If
.AutoFilter
End With
Set acSh = Nothing
'プロテクトは残っています。
End Sub
お礼
こんな簡単な方法で出来るとは思いませんでした。 とても参考になります。ありがとうございました。