前提・実現したいこと
エクセル・VBAの超初心者です。
VBAにて行検索を行い、該当セルの含まれる行を非表示にしたいと思っています。
A列にはIF関数にてF:H列がすべて空欄であれば非表示「1」を、どこかに入力があれば空欄””となるよう設定しています。
この「1」に該当する行を非表示にしたいと考えております。
行いたい作業の構成としては、
A列をコピー→B列に値ペースト→B7:B2506(検索範囲)を選択→Ctl+Fにて「1」を検索→すべて検索→Ctl+Aにてすべて選択→検索と置換コマンドを閉じる→Ctl+9にて該当セルを含む行を非表示
と考えています。
手作業では思い通りになるのですが、マクロの記録でコードを確認しようとすると、
「Ctl+Fにて「1」を検索→すべて検索→Ctl+Aにてすべて選択→検索と置換コマンドを閉じる」
の箇所がコード表示されず、一連の流れでマクロを動かすと選択した検索範囲B7:B2506を含む行がすべて非表示にされてしまいます。
発生している問題・エラーメッセージ
該当のソースコード
エラーコードは以下の通りです。
Sub k()
'空欄行を非表示
Columns("A:A").Select
Selection.Copy
Columns("B:B").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("B7:B2506").Select
Selection.EntireRow.Hidden = True
ActiveWindow.ScrollRow = 109
ActiveWindow.ScrollRow = 101
ActiveWindow.ScrollRow = 51
ActiveWindow.ScrollRow = 1
Range("A1").Select
End Sub
試したこと
元々はB列の空白セルをジャンプコマンドで選択して非表示にしようとしていたのですが、空白セルでは検知できず(値コピーしたせいか定数セル扱いなっていました)、検索にてセル選択しようとしています。
ちなみにIF構文は下記の通りです。
=IF(AND(F7="",G7="",H7=""),1,"")
もし他にシンプルなアイデアがありましたらご教示いただけますと幸いです。
補足情報(FW/ツールのバージョンなど)
独学でVBAの勉強を始めた超初心者です。解説動画やネットの解説を参考に構文を組んでいるのですが苦戦しており、ご教示時いただけますと幸いです。
どうぞよろしくお願いいたします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/09/24 01:20