エクセルで空白のセルのある行を非表示にする方法

このQ&Aのポイント
  • エクセルで表のデータが一部欠けている場合、空白のセルのある行を非表示にする方法を紹介します。
  • 具体的には、データが50行までしかない場合、51行目から100行目までを非表示にします。
  • これにより、表の見た目を整理することができます。
回答を見る
  • ベストアンサー

エクセル~空白のセルのある行を非表示に。

エクセルで。 例えば、100行の表があって、1行目から順番にデータを入れていくんですが、 データが50行までで終わってしまった場合に、51行目からを、非表示にしたいのです。 Aドライブからのデータの読み込みは、マクロをつかっているので、できればそのあとに文章をくっつけて、1つのマクロで作業を完了したいのです。 具体的に言いますと・・・ A列には1~100までの数字が入力してあります。 B~E列には取り込んだデータ(数字)をVLOOK関数で文字に変換するようになってます。 それ以降は、固定した単位(m3)や、データの数字がそのまま入る・・・という感じです。 そして、101行目はそれぞれの列の合計を出すようにしてます。 つまり、データを読み込んだあと、例えば50行しかデータが無かったら(B50やC50などが空白だったら)、51行目から100行目までをいわゆる『表示しない』にしたいのです。 だいぶ考えましたが・・・・。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.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

pc-cad
質問者

お礼

うまくいきました。 周りの誰に聞いてもわからなかったことなのに、さすがnishi6さん!!! 先に回答いただいたお二人には、ワタクシの質問の仕方が悪く、本当に申し訳なかったです。 多分お二人とも、すごく詳しい方たちなんでしょうねえ。 nishi6さんに回答をいただくのは3回目だから、多分ワタクシのレベルがおわかりになっておられて、わかりにくい質問でも、意味が通じたのでしょう。 ただ、こういう質問を文章で書くのって本当に難しいです。 また、質問させて下さい。ありがとうございました。

その他の回答 (2)

  • TTak
  • ベストアンサー率52% (206/389)
回答No.2

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にて動作確認

pc-cad
質問者

お礼

ありがとうございます。 せっかく教えていただいたのですが、思う通りにいきませんでした。 動作確認までしていただいたのに・・・。 ワタクシの説明のしかたが悪かったのだと思います。 ご好意感謝いたします。

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.1

こんにちは。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:="=合計" フィルタをかけるのは、どちらか一方だけにして下さい。 参考になりましたら、幸いです。 です。

pc-cad
質問者

お礼

ありがとうございます。 せっかく教えていただいたのですが、思う通りにいきませんでした。 ワタクシの説明のしかたが悪かったのだと思います。 ご好意感謝いたします。

関連するQ&A

  • 空白セルを非表示に

    A1:B50の範囲にデータが入っています。A1:A50までに空白のセルがあれば、その行を非表示にするマクロを組みました。 Dim rw As Integer Application.ScreenUpdating = False For rw = 1 To 50 If Range("A" & rw) = "" Then Rows(rw).EntireRow.Hidden = True End If Next Application.ScreenUpdating = True これをA1:B50の範囲でどちらか入っているデータの多い方に合わせて非表示にするときはどうなるのでしょうか。説明がヘタですみません・・・ たとえばデータの入っているセルが、 A列がA1:A10まで、B列がB1:B:15までで以下空白の場合、今のマクロではA列でしか空白を判定しませんよね?なのでA11以下は空白にされてしまい、B12:B15までのデータも一緒に非表示されてしまいます。 どうしたらよいか教えて下さい。

  • 特定のセルが空白だったら、その行を非表示にしたい。。。

    A2からV500にデータが入っています。 すべてにデータが入るわけではなくて、 B列が空白セルの行は、非表示にして印刷をかけたいのですが、可能ですか? うーん…うまく説明できないー。

  • Excelで空白セルをつめて表示させたい

    お世話になります。 Excelの操作について教えてください。     A列  B列 1行  3 2行       2 3行  5 4行  4    1      ↓     A列  B列 1行  3    2 2行  5    1 3行  4 4行 と、空白でないのセルだけを、上に詰めて別のシートに表示させたいです。 出来れば関数を使って行いたいです。 いくつか同じような質問があったのですが、なかなかうまくいきません。 どなたか、ご教授下さい。

  • エクセルでセルが空白だったらその行を表示させない方法を教えてください。

    エクセルでセルが空白だったらその行を表示させない方法を教えてください。 こんにちわ。 色々調べたのですが、分からずアドバイスをいただきに来ました;; 何とかならないかと困っていますので、お願いいたします。 具体的には  A  B  C  D ... 1 ◎ あ い う 2   か き く 3 ◇ さ し す 4 △ た ち つ . . のようなA2が空白だった場合下記のように ↓↓↓↓↓↓↓↓  A  B  C  D ... 1 ◎ あ い う 3 ◇ さ し す 4 △ た ち つ . . のようにA2が空白だった場合「削除」ではなく「表示しない」としたいです。 ちなみにoffice2003のエクセルを使用しています。 マクロを組まないとできないのであれば、出来れば具体的なソース等を乗せていただけると幸いです。(マクロは勉強中で全然できないので^^;) よろしくお願いいたしますm(_ _)m

  • エクセルマクロ、空白行(セル)の挿入

    データがA、B、C、D、E列100行まであります。 このうちD、E列を除き、エクセルのマクロで1行ごとに空白で10行挿入したいです。 (A、B、C、D列のデータに空白セルを10行分挿入し、下にシフトするイメージ。D、E列はそのまま。) ご教授頂きたく、お願いします。

  • Excel 空白行を上に詰めるマクロ

    関数を使用して、sheet1からsheet2に必要なデータを抜き取りました。 sheet2のセルには関数が入っています。 sheet2の抽出データには1行単位(まれに2~3行続けて)空白が発生します。 この行を削除し、かつ上に詰めて表示をしたいのですが、下記の条件で実行可能でしょうか? (例) sheet1 ⇒ sheet2   A   B   C     A  B  C 1 あ  い  う   1 あ  い  か 2        か   2 (空白行) 3 き  く   け    3 き  く  し   4 こ  さ   し   4 (空白行) ●2行目、4行目を削除し、且つ5行目以降に入力されている関数は削除したくない ●空白行削除のマクロは自動?(sheet1のデータを変更したら)で実行できるようにしたい よろしくお願いします。

  • エクセルでA列セルが空白の時その行に罫線を引くには

    エクセルでA列セルが空白の時、その行の下側のみに2重罫線を引くマクロを教えて下さい。 色々試しましたがうまくいきません。例えば下記の様な表で3行目、7行目、12行目の各下側にのみ2重罫線を引くマクロです。行数と空白行は、日々取り込んでいるデータによって変わります。知恵をお貸し下さい。(A列空白セルのC列にはSUM関数を入れております。うまく表記が出来ませんので念のため)        A列   B列   C列 1行     123    酒    100 2行     123    酒    100 3行  ========================  4行     215   ビール   200 5行     215   ビール   200 6行     215   ビール   200 7行 =========================   8行     324    ワイン  300 9行     324    ワイン  300 10行     324    ワイン  300 11行     324    ワイン  300 12行 ========================                 

  • 【マクロ】クリックすると空白を含む列を非表示に

    上司にExcelのデータが見づらいと言われて困っています。 下記のようなマクロやVBAを教えていただけないでしょうか? 例えば、 A2のセルをクリックすると、その行(2行目)から空白セルを検索して、そのセルを含む列を非表示にして、データが入っている列だけを表するようなマクロってないでしょうか? (要は、C2とE2が空白セルのとき、A2をクリックして、A/B/D/F~の列だけ表示されるようになるマクロです。 同様に3行目でも、空白セルがB3、C3なら、A3をクリックした時、A/D/E…列だけ表示されて、B・C列が非常時になるような。) 似たような機能があれば、A2クリックでなく別にボタン等を作っても構いません。 ややこしくて、申し訳ございませんが、本当に困っているので、 どうかよろしくお願いいたします。

  • 空白行削除

    宜しくお願いします。 1枚のファイルシートに14ブロックのデータが貼り付けてあります。各ブロック行の長さは違く、ランダムに貼り付けてあります。例えば、データ 何百行の空白 データ…と繰り返されており、約3万5千行ぐらいあります。 空白行削除で多分半分近くまで上に詰められれば良いのですが、たくさんあるのでマクロで教えていただければと思います。ネットでころがってるデータ試してみたのですが(1部) ENDLESSに実行されて、出来てるのかどうかも確認はとれてません。ちなみに自分のシートに貼ってあるデータはA列からAS列まであり数字、文字混在です。また各ブロックの終わりは集計行となっており、空白セルがまじってます。宜しくお願いします。

  • エクセルで1行ごとに空白行を挿入し、挿入した空白行に色をつけたいです

    タイトルの通りです。 エクセル(2000)で、データはシート毎に件数が違います。 各シート毎にそれぞれ1行毎、空白行を挿入し、挿入した空白行のA列~G列までに薄いグレーの色をつけるマクロを入れたいのですが、うまくいきません。 詳しい方、教えて下さい。

専門家に質問してみよう