プロが教えるわが家の防犯対策術!

エクセルのシートに表を作り、行にはNo.1~No.8と記載しています。
同シートにドロップダウンリストを作り、1~8までの数字を選ぶと、
選んだ数字より大きい数の行は非表示にしたいのですが、何か良い方法はありますか。

たとえば8を選べば、表内のNo.1~No.8の行が表示されているが、
6を選ぶとNo.7、No.8の行は非表示になり、No.1~No.6だけが表示されている状態になる、といった具合です。

よろしくお願いいたします。

A 回答 (7件)

こんばんは!


VBAになってしまいますが・・・

こういうことですかね?

↓の画像のような配置でE1セルにリスト表示させるようにしています。
(リストの中には空白セルを一つ入れています、空白セルを選んだ場合はすべて表示になります)

画面左下にある操作したいSheet見出し上で右クリック → コードの表示 → VBE画面が出ますので
↓のコードをコピー&ペーストしてE1セルのデータをリストから選んでみてください。

Private Sub Worksheet_Change(ByVal Target As Range) 'この行から
If Target = Cells(1, 5) Then
Application.ScreenUpdating = False
Rows.Hidden = False
Dim i As Long
For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
If Cells(i, 1) > Target And Target <> "" Then
Rows(i).Hidden = True
End If
Next i
Application.ScreenUpdating = True
End If
End Sub 'この行ま

※ ご希望の方法と違ったらごめんなさいね。m(_ _)m
「エクセル2000:条件によって行を非表示」の回答画像7
    • good
    • 1
この回答へのお礼

みなさん、わかりにくい質問にもかかわらず、回答いただきありがとうございました。
伝わるように努めたのですが、ややこしくなってしまったようです。
tom04さんに教えていただいたVBAでうまく動きました。
フォームの中に組み込めそうです。
複雑なものを作っていただきありがとうございました。

お礼日時:2011/10/05 22:18

>フォームのようなものを作り、その一部に今回質問させていただいた表も組み込みたいと考えています。


これは「非表示」の問題ではなく、「抜き出し」問題(抽出問題)だ。質問内容をはっきり正確に書かないから、回答者を混乱させている。
こういうレベルでは、VBAでフォームを扱うのなど早すぎる。丸投げで、回答の書かれたコードをコピペして、うまく行きましたなんて、安易で回答者はやりきれないだろう。
    • good
    • 1

非表示ならオートフィルターで十分だと思うのですが、ほかのセルへ書き出すのでしょうか?


マクロの自動記録 でちょっとだけ修正したもの
Sub F1セルへ抽出する()
  'F1セルを選択して[Ctrl]+[Shift]+[*] → [Delete] の組み合わせ
  Range("F1").CurrentRegion.ClearContents
  'A1セルを選択してオートフィルター オプション ○以下と
  'D1セルの値の組み合わせ
  Range("A1").AutoFilter Field:=1, Criteria1:="<=" & Range("D1").Value

  'A1セルを選択して[Ctrl]+[Shift]+[*] → コピー の組み合わせ
  Range("A1").CurrentRegion.Copy
  'F1セルを選択して
  Range("F1").Select
  '貼り付け
  ActiveSheet.Paste
  '[Esc]
  Application.CutCopyMode = False
  'すべて表示
  ActiveSheet.ShowAllData
End Sub
添付図参照
「エクセル2000:条件によって行を非表示」の回答画像5
    • good
    • 0

非表示ではなく抽出ではダメなんですかね。


なれないVBAを使うよりかは効率的と思いますが。

もう少し詳しく表の構成(横に項目がどれくらいあるとか、No.はどの列にあるとか)を書かれるとそういった回答が来るかもしれません。
    • good
    • 1

NO1です。


>参考サイトがあればご教示いただければと思います。
 ⇒ご希望のものと少し相違しますが添付のURLを参照して下さい。

参考URL:http://www.nbcom.co.jp/PC-Support/FAQ/xls/ht/xls …
    • good
    • 0
この回答へのお礼

たびたびの質問にお答えいただきありがとうございました。
教えていただいたページを参考にさせていただいて自分でやってみようと思います。
ありがとうございました。

お礼日時:2011/10/05 22:02

普通にオートフィルタでいいのでは?


オプションで、○より小さいとか。

この回答への補足

ご回答いただきありがとうございました。

質問の仕方が曖昧で申し訳ありませんでした。
フォームのようなものを作り、その一部に今回質問させていただいた表も組み込みたいと考えています。

補足日時:2011/10/05 16:14
    • good
    • 0

>選んだ数字より大きい数の行は非表示


 ⇒マクロ(VBA)なら非表示とする事が可能ですが、VBA知識が必要です。

  尚、「非表示」=「見えない」でよいのならば、条件付き書式でフォントをセル背景と同じに色に設定すれば可能ですが如何でしょうか。(但し、数式バー上にはデータ表示あり)

  仮にA1に行入力、2行目から9行目を選択→書式→条件付き書式→「数式が」を選択、数式欄に=(ROW()-1)>$A$1→書式→フォントタブで色欄にセル背景と同色を選択→OK

この回答への補足

早速のご回答、ありがとうございました。
文字を見えなくするのではなく、できれば行自体を非表示にしたいと考えています。

マクロ(VBA)を使用する場合は、どういった式を組めばいいでしょうか。
(マクロの使用については、関連サイトを見ながらコピー&ペーストで設定する程度はやったことがあります。)
または、参考サイトがあればご教示いただければと思います。
(Google等で色々検索してみましたが、見つけられず、こちらで質問させていただいた次第です。)

補足日時:2011/10/05 16:03
    • good
    • 0

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