• 締切済み

excel:塗りつぶしの色によってリスト内容を変える方法

excel:塗りつぶしの色によってリスト内容を変える方法 質問させていただきます。 塗りつぶしの色によってリスト内容を変える方法がわかりません。 具体的には、たとえばA1が赤だった場合、A1のリスト内容をC1からC5にしてA1が青だった場合A1のリストをD1からD5の内容にするといったことです。 ユーザー定義関数で色わけ関数を作って、リストでIFと作成したユーザー関数を使うことを考えたのですがうまくいきません。 どなたかご教授願えればと思います。

みんなの回答

  • end-u
  • ベストアンサー率79% (496/625)
回答No.1

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は適当です。 #想定外の色だった場合にリストを表示させないようにダミーセルを指定します。

関連するQ&A

専門家に質問してみよう