条件に一致する行を全て非表示にする
未読分:2件
昨日以降(0) 2日前以降(0) 3日前以降(0) 4日前以降(0) 5日前以降(0)
近田 伸矢, 植木 悠二, 上田 寛
IEのデータ収集&自動操作のプログラミング本はこの1冊だけ!IEの起動やポップアップウィンドウ、表示を制御する基本的なコードはもちろん、テキストボックスやラジオボタン、表、ハイパーリンクなどのHTML部品を制御する方法など、自動操作に欠かせないノウハウを丁寧に解説。
Message#2 2015年2月6日(金)08時25分 From: kzau | 返事 削除 変更 |
セルを見つけて非表示ということですので、Findメソッドを使うのがいいかと思います。 全てのセルに対してFindメソッドを使うと膨大なデータの中から探さなければいけないので、ある程度法則性のある書き方をするのであれば、絞れると思います。 ただ、あまりお勧めしません。 もう1つはセルをループさせて非表示にする項目があった場合は、非表示にするという処理です。こちらでしたらデータ数が少ない場合かなり有効的です。 以下はサンプルですので、一度試してみてください。 Sub sample() Dim i As Long, k As Long For i = 1 To Cells(Rows.Count, "C").End(xlUp).Row If Cells(i, "C") = "先頭セル" Then k = i Do Until Cells(k, "C") = "AAA" k = k + 1 Loop If Cells(k, "D") = 0 Then Range(Cells(i, "C"), Cells(k, "C")).EntireRow.Hidden = True End If i = k End If Next i End Sub |
Message#1 2015年2月6日(金)07時59分 From: ピカソ | 返事 削除 変更 |
ExcelのVBAで質問があります。 条件に一致する行を全て非表示にしたいと考えているのですが、どのようにすればいいですか? A1:A5がセルの結合をしています。そしてC5に「VBA」が入力され、D6が0と表示されていた場合に、A1:A5のセルを非表示にしたいと考えています。 次にA16:A10のセルを結合セルとして、C6に「エクセル」と入力され、D16に数字が入っている状態です。この流れがずらっと下の行まで続いていきます。 こうなると行数が一定しないので、C列に「VBA」 と入力している横のD列の数字が「0」の場合だけその行A列の結合セルの行数だけ非表示にできないでしょうか? こちら処理は可能なのか可能な場合はどのように記述すればうまくいくのかご指導よろしくお願いいたします。 |
昨日以降 2日前以降 3日前以降 4日前以降 5日前以降