- ベストアンサー
エクセルで空白のセルのある行を非表示にする方法
- エクセルで表のデータが一部欠けている場合、空白のセルのある行を非表示にする方法を紹介します。
- 具体的には、データが50行までしかない場合、51行目から100行目までを非表示にします。
- これにより、表の見た目を整理することができます。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
質問内容からすると、B~E列は100行目までVLookUpの算式が入っているような気がしますので、その前提でのマクロです。データを読み込んだ後、データの数分の算式を書き込んでいれば別の話になってしまいますが。 100行目が入力ありの時、100行目からEnd(xlUp)を行うと1行目を返したりするはずなので上から順に逐一調べています。1行目も使用している前提です。 また、質問の意味からは途中には見た目空白の行はないように思えますが、途中行のB列のVLookUpの帰り値が長さ0の文字列(""です)の行は非表示にしてしまいます。 ご参考に。 Sub rowHidden() Const DataRowMax = 100 'データの最終行 Dim rw As Integer '行カウンタ Application.ScreenUpdating = False '画面更新をストップ For rw = 1 To DataRowMax Rows(rw).Hidden = False '一旦表示にする If Cells(rw, 2).Text = "" Then Rows(rw).Hidden = True '非表示にする End If Next Application.ScreenUpdating = True '画面更新 End Sub
その他の回答 (2)
- TTak
- ベストアンサー率52% (206/389)
pc-cadさんこんにちは こんな感じでしょうか Sub SAMPLE() Dim usedCellCount As Integer '↓B列に何行目まで入力されているかを取得 usedCellCount = Range(Cells(100, 2).End(xlUp).Address).Row '↓100行目まで入力されていたらhiddenを実行しない If usedCellCount = 100 Then Exit Sub '↓入力されている次の行から100行目までを非表示 Rows(usedCellCount + 1 & ":100").Hidden = True End Sub 注意事項として、すべての行のHiddenのプロパティを一度Falseにして (一旦すべての行を表示して)この処理を行った方がよいでしょう。 EXCEL2000 Win98seにて動作確認
お礼
ありがとうございます。 せっかく教えていただいたのですが、思う通りにいきませんでした。 動作確認までしていただいたのに・・・。 ワタクシの説明のしかたが悪かったのだと思います。 ご好意感謝いたします。
- maruru01
- ベストアンサー率51% (1179/2272)
こんにちは。maruru01です。 オートフィルタを使うのはどうでしょう。 コードはこんな感じです。 1行目に項目があるとして、A102には"合計"という文字が入っているとします。 Range("A1:E102").Select Selection.AutoFilter 'とりあえずB列にフィルタをかけて、空白以外を抽出 Selection.AutoFilter Field:=2, Criteria1:="<>" 'A列にフィルタをかけて、A列の値<=50と合計のみ抽出 Selection.AutoFilter Field:=1, Criteria1:="<=50", Operator:=xlOr, Criteria2:="=合計" フィルタをかけるのは、どちらか一方だけにして下さい。 参考になりましたら、幸いです。 です。
お礼
ありがとうございます。 せっかく教えていただいたのですが、思う通りにいきませんでした。 ワタクシの説明のしかたが悪かったのだと思います。 ご好意感謝いたします。
お礼
うまくいきました。 周りの誰に聞いてもわからなかったことなのに、さすがnishi6さん!!! 先に回答いただいたお二人には、ワタクシの質問の仕方が悪く、本当に申し訳なかったです。 多分お二人とも、すごく詳しい方たちなんでしょうねえ。 nishi6さんに回答をいただくのは3回目だから、多分ワタクシのレベルがおわかりになっておられて、わかりにくい質問でも、意味が通じたのでしょう。 ただ、こういう質問を文章で書くのって本当に難しいです。 また、質問させて下さい。ありがとうございました。