- 締切済み
excel:塗りつぶしの色によってリスト内容を変える方法
excel:塗りつぶしの色によってリスト内容を変える方法 質問させていただきます。 塗りつぶしの色によってリスト内容を変える方法がわかりません。 具体的には、たとえばA1が赤だった場合、A1のリスト内容をC1からC5にしてA1が青だった場合A1のリストをD1からD5の内容にするといったことです。 ユーザー定義関数で色わけ関数を作って、リストでIFと作成したユーザー関数を使うことを考えたのですがうまくいきません。 どなたかご教授願えればと思います。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- end-u
- ベストアンサー率79% (496/625)
1)例えばそのユーザー定義関数を、 色によって数値を返すだけの関数にします。 Function fCnum(ByRef r As Range) Dim n As Long Select Case r.Interior.Color Case vbRed: n = 1 Case vbBlue: n = 2 Case vbYellow: n = 3 End Select fCnum = n End Function 2)目的シートのA1セルを選択して、[Ctrl]+[F3]キー。 ~~~~~~~~~~~~~~~~ [名前定義]を設定します。 名前: ccol 参照範囲: fcnum(A1) 3)A1セルの[入力規則]のリストに =IF(ccol=0,$B$1,INDEX($C$1:$E$5,0,ccol)) みたいな感じでしょうか。 ユーザー定義関数の結果を[名前定義]を経由させて [入力規則]で使えるようにします。 それで返った数値を、INDEX関数での列指定に利用してリストを可変にします。 #=IF(ccol=0,$B$1,..のB1は適当です。 #想定外の色だった場合にリストを表示させないようにダミーセルを指定します。