[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『選択したリストに合わせて行を非表示にする方法』(ぐっっち)
選択したリストに合わせて行を非表示にする方法を教えていただけないでしょうか。
シート1のセルH2に、リストを作成しています。
リストはA、B、C、D、E、Fです。
リストはシート3のセルB6〜11を参照にしています。
リストのC、D、E、Fを選んだらシート1の行8〜14が非表示になるようにしたいです。
さらに、
セルI2にもリストを作り、上記と同じようなことをしたいです。
リストのAを選んだら行25、26と、行29〜31が非表示になるように、
リストのBを選んだら行21〜24、行27,28が非表示になるようにしたいです。
わかりにくくてすみません。
よろしくお願いいたします。
ぐっっち
< 使用 Excel:Excel2010、使用 OS:Windows10 >
If Target.Address(0, 0) <> "H2" And Target.Address(0, 0) <> "I2" Then Exit Sub Rows.EntireRow.Hidden = False Select Case Target.Value Case "C", "D", "E", "F" Range("8:14").EntireRow.Hidden = True Case "A" Range("25:26,29:31").EntireRow.Hidden = True Case "B" Range("21:24,27:28").EntireRow.Hidden = True End Select End Sub (mm) 2019/04/10(水) 15:13
実行すると下記のエラーが出てしまいます。
実行時エラー 424 オブジェクトが必要です
初心者すぎてすみません。
解決するには何をすればいいでしょうか。
ぐっっち
(ぐっっち) 2019/04/10(水) 16:21
1) Sheet1のシート見出しを右クリックして[コードの表示] 2) 出てきた画面の右空白部分に下記コードを貼り付けて Alt + Q でエクセル画面に戻る
Private Sub Worksheet_Change(ByVal Target As Range) If Intersect(Target, [h2:i2]) Is Nothing Then Exit Sub If Target(1).Value = "" Then Exit Sub [25:26,29:31].EntireRow.Hidden = Target.Cells(1).Value = "A" [21:24,27:28].EntireRow.Hidden = Target.Cells(1).Value = "B" [8:14].EntireRow.Hidden = Target.Cells(1).Value Like "[C-F]" End Sub (seiya) 2019/04/10(水) 16:36
セルのh2とi2は全く異なるリストなのですが、
それが関係あるのかもしれないです。
h2のリストは、マゼ、リン、ダー、コロ、リン
したいこと=ダー、コロ、リンを選んだら、[8:14]が消える。マゼ、リンを選んでも何も消えない。
i2のリストは、WEB、本、併用
したいこと=WEBを選んだら、[25:26,29:31]が消える。本を選んだら、[21:24,27:28]が消える。併用を選んだら何も消えない。
どちらのリストも同時に機能させることは可能でしょうか?
初心者で伝わりにくくてすみません。
とても助かっているので、なんとか最後までできるようにしたいです。
よろしくお願いいたします。
ぐっっち
(ぐっっち) 2019/04/10(水) 17:14
>シート1のセルH2に、リストを作成しています。 >リストはA、B、C、D、E、Fです。
>h2のリストは、マゼ、リン、ダー、コロ、リン
あのね、こういうことするとお互い時間の無駄だよね?
Private Sub Worksheet_Change(ByVal Target As Range) If Intersect(Target, [h2:i2]) Is Nothing Then Exit Sub If Target.Address(0, 0) = "H2" Then [8:14].EntireRow.Hidden = IsNumeric(Application.Match(Target, Array("ダー", "コロ", "リン"), 0)) Else
[25:26,29:31].EntireRow.Hidden = Target.Cells(1).Value = "WEB" [21:24,27:28].EntireRow.Hidden = Target.Cells(1).Value = "本" End If End Sub (seiya) 2019/04/10(水) 17:33
無事、上手く機能させることができました。
ぐっっち
(ぐっっち) 2019/04/10(水) 17:44
上手く機能していたのですが、
編集していると機能しなくなってしまいました。
D5のリストは、マゼ、リン、ダー、コロ、リン
したいこと=ダー、コロ、リンを選んだら、[12:20,40:48]が消える。
マゼ、リンを選んでも何も消えない。
D6のリストがWEB、冊子、併用
したいこと=WEBを選んだら[36:62]が消える。冊子を選んだら[8:39]が消える。併用を選んだら何も消えない。
D5の設定を反映させたまま、D6を反映させたいです。
現状だと、D6を変えると、D5で消えていたセルが出てきてしまいます。
今のは下記になります。
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range) If Intersect(Target, [D5:D6]) Is Nothing Then Exit Sub If Target.Address(0, 0) = "D5" Then [12:20,40:48].EntireRow.Hidden = IsNumeric(Application.Match(Target, Array("ダー", "コロ", "リン"), 0)) Else [35:62].EntireRow.Hidden = Target.Cells(1).Value = "WEB" [8:35].EntireRow.Hidden = Target.Cells(1).Value = "冊子" End If End Sub
(ぐっっち) 2019/05/10(金) 21:49
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.