Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


7574 / 13646 ツリー ←次へ | 前へ→

【38187】数値の入ってないセルの行を非表示 くれよん 06/5/29(月) 13:38 質問[未読]
【38189】Re:数値の入ってないセルの行を非表示 Statis 06/5/29(月) 13:47 回答[未読]
【38190】Re:数値の入ってないセルの行を非表示 Kein 06/5/29(月) 13:48 回答[未読]
【38191】Re:数値の入ってないセルの行を非表示 Statis 06/5/29(月) 14:01 発言[未読]
【38192】Re:数値の入ってないセルの行を非表示 Kein 06/5/29(月) 14:22 発言[未読]
【38193】Re:数値の入ってないセルの行を非表示 くれよん 06/5/29(月) 14:40 お礼[未読]
【38195】Re:数値の入ってないセルの行を非表示 Kein 06/5/29(月) 14:52 回答[未読]
【38196】ありがとうございました。 くれよん 06/5/29(月) 15:02 お礼[未読]
【38197】再度 お礼 くれよん 06/5/29(月) 15:13 お礼[未読]

【38187】数値の入ってないセルの行を非表示
質問  くれよん  - 06/5/29(月) 13:38 -

引用なし
パスワード
   こんにちは。初心者ですがよろしくお願いいたします。
過去ログで載っていましたら失礼いたします(確認はしましたが・・)
質問
数値の入ってないセルの行を非表示に出来るものなんでしょうか?
   A     B
1 リンゴ    1
2 ミカン
3 バナナ    2
4  ・     ・
   ↓
1 リンゴ    1
2 バナナ    2
4  ・     ・
           って具合です。
よろしくお願いいたします。

【38189】Re:数値の入ってないセルの行を非表示
回答  Statis  - 06/5/29(月) 13:47 -

引用なし
パスワード
   こんにちは
B列に値が無い場合と考えて(数式等も無い事)

Sub Test()

With Range("A1", Range("A65536").End(xlUp)).Offset(, 255)
   .Formula = "=IF(B1="""",1,"""")"
   On Error Resume Next
   .SpecialCells(xlCellTypeFormulas, 1).EntireRow.Hidden = True
   On Error GoTo 0
   .Clear
End With

End Sub


Sub 戻し()
Cells.EntireRow.Hidden = False
End Sub

【38190】Re:数値の入ってないセルの行を非表示
回答  Kein  - 06/5/29(月) 13:48 -

引用なし
パスワード
   B列に表示された数値が、数式の計算結果でなく値のみなら

Sub Hd_Row()
  Dim MyR As Range
 
  On Error GoTo ELine
  Set MyR = Range("A1", Range("A65536").End(xlUp)) _
  .Offset(, 1).SpecialCells(2, 1).EntireRow
  On Error GoTo 0
  MyR.Hidden = IIf(MyR.Hidden, False, True)
  Set MyR = Nothing
ELine:
End Sub

で、行の表示・非表示を交互に処理できます。
もし数式の計算結果なら
>SpecialCells(2, 1)


SpecialCells(3, 1)

と、変更して下さい。

【38191】Re:数値の入ってないセルの行を非表示
発言  Statis  - 06/5/29(月) 14:01 -

引用なし
パスワード
   ▼Kein さん:
こんにちは
そうです。
ねわざわざ数式など必要ないですね、B列で確認できますね。
ひとつ確認ですが
>数値の入ってないセルの行を非表示に出来るものなんでしょうか?
上記ですので
>  Set MyR = Range("A1", Range("A65536").End(xlUp)) _
>  .Offset(, 1).SpecialCells(2, 1).EntireRow

Set MyR = Range("A1", Range("A65536").End(xlUp)) _
  .Offset(, 1).SpecialCells(xlCellTypeBlanks).EntireRow

となるのではないでしょうか?

【38192】Re:数値の入ってないセルの行を非表示
発言  Kein  - 06/5/29(月) 14:22 -

引用なし
パスワード
   >SpecialCells(xlCellTypeBlanks)
ですね。よく見てませんでした。m(_ _)m

【38193】Re:数値の入ってないセルの行を非表示
お礼  くれよん  - 06/5/29(月) 14:40 -

引用なし
パスワード
   Keinさん
Statisさん
早速ありがとうございます。
AB列で試したら出来ました!

またここで質問なのですが

実際の空白確認セルはZ列なのですが
Z列はC−Yまでの合計(SUM())値です
A,B列は空白の箇所もあります。

どこを変えればいいのか・・(汗
最初からしっかりとズバリ聞きたいことを書いておけばよかったですね。
安易に考えておりました。反省しております。
よろしくお願いいたします。

【38195】Re:数値の入ってないセルの行を非表示
回答  Kein  - 06/5/29(月) 14:52 -

引用なし
パスワード
   >実際の空白確認セルはZ列なのですが
>Z列はC−Yまでの合計(SUM())値です
数式の計算結果で空白にするなら、=IF(SUM($C2:$Y2)>0,SUM($C2:$Y2),"")
のような式になると思います。これは判定がFALSEのとき「長さ0の文字列」
にするということなので、SpecialCells(3, 2) の範囲になります。
(第二引数の 2 は、xlTextValues と等価)
逆に合計値が出ているところは SpecialCells(3, 1) の範囲です。
従って

Set MyR = Range("Z:Z").SpecialCells(3, 2).EntireRow

と変更すれば、目的の処理が出来るはずです。

【38196】ありがとうございました。
お礼  くれよん  - 06/5/29(月) 15:02 -

引用なし
パスワード
   早速ありがとうございます
いままで頂いたご回答を解析して
当てはめてみようとおもいます。
本当にありがとうございました。
どうしてもわからず
又投稿するかもしれませんがそのときは
よろしくお願いいたします。

【38197】再度 お礼
お礼  くれよん  - 06/5/29(月) 15:13 -

引用なし
パスワード
   度々投稿をお許しください。
おっしゃるとおり作成いたしましたら即できました!
こんなにスムーズに出来たとは・・・初めてです。
本当にありがとうございました。

7574 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free