アプリ版:「スタンプのみでお礼する」機能のリリースについて

初めて質問します。
A列に日付、B~H列にデータが入っています。
A列の日付が本日までの範囲で(明日以降の空行はそのまま残して)、B列に空白がある行だけ非表示にしたいのですが、何かいい方法はないでしょうか?

A 回答 (3件)

こんばんは。



'標準モジュールが良いです。

Sub Test1()
  Dim myDate As Long
  Dim i As Variant
  myDate = Date
  i = Application.Match(myDate, Range("A:A"), 0)
  If IsError(i) Then
    MsgBox "本日の" & Format$(myDate, "yy/MM/dd") & "が見つかりません。", 48
    Exit Sub
  End If
  On Error Resume Next
  'B列に対して(かならず、1行目から行うこと)
  With Range("B1").Resize(i).SpecialCells(xlCellTypeBlanks)
   If Err.Number > 0 Then
    MsgBox "非表示にすべきセルが見つかりません!", 48
    Exit Sub
   Else
   .EntireRow.Hidden = True  'True 非表示
   MsgBox .Cells.Count & "行が非表示になっています。", 64
   End If
  End With
  On Error GoTo 0
End Sub

メッセージ等が不必要でしたら、その部分は削除してください。
    • good
    • 0
この回答へのお礼

う~ん、完璧です。
これだけシンプルにできるとは、まさに目から鱗です。
ありがとうございました。

お礼日時:2008/03/29 09:16

Sub test01()


Dim cl As Range
Range("B2:B100").SpecialCells(xlCellTypeBlanks).Select
For Each cl In Selection
r = cl.Row
'MsgBox r
Rows(r).EntireRow.Hidden = True
Next
End Sub
--
SpecialCells(xlCellTypeBlanks).Select
を使うところがミソか
1つづつB列のセルを空白か聞いていっても出来るが。
    • good
    • 2
この回答へのお礼

早速のご回答ありがとうございます。
A列の日付が本日まで、というところでちょっと躓いています。
お知恵を拝借できるとありがたいのですが・・・

お礼日時:2008/03/28 22:55

「EXCEL VBA」と明示してあるので


>何かいい方法はないでしょうか?
は「丸投げでお願いします」ということですね。 ご自身はトライされましたか。どこでつまづきましたか? それがないと身に付きませんよ。

A列の日付が昇順になっているのか、ランダムなのかも書かれていないので、ランダムと見なします。また空白とは「式も何も入力されていないセル」と見なします。マクロサンプルを書きますから条件が違うならご自身で修正してください。

Sub Macro1()
Dim r, trg As Range
  Set trg = Range("B1", Range("A1").End(xlUp).Offset(0, 1))
  For Each r In trg.SpecialCells(xlCellTypeBlanks)
    If IsDate(r.Offset(0, -1)) Then
      If r.Offset(0, -1) <= Date Then
        r.EntireRow.Hidden = True
      End If
    End If
  Next r
End Sub
    • good
    • 0
この回答へのお礼

早速のご回答ありがとうございます。
自分の求めているとおりのご回答でありがたく思います。
残念ながら実行してみると、 If IsDate(r.Offset(0, -1)) Then のところで、実行時エラー'1004'アプリケーション定義またはオブジェクト定義のエラーです、の表示が出ます。
ただし、結果はきちんとB列が空白の行が非表示になります。
これは、どこが悪いのでしょうか?

ついでに、自分なりに考えたのはJ列に作業列を作って、日付が今日以前の場合は"0"、明日以降の場合は"1"を表示させて、Bが空白でJが"0"の場合に非表示にしたら良いのでは?ということでトライしていました。

大変すっきりしたコードで感心しています。

お礼日時:2008/03/28 22:49

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています