• ベストアンサー

EXCELの入力規則のリストについて。その2(IFで空白にしたセル)

EXCEL2000で入力規則のリストを設定しています。 IF(セル番号="","",VLOOKUP(…))を使用して表を作っています。 表は途中からIFによって空白行になっています。 この表全体をリストの「元の値」に設定しているのですが、プルダウンメニューに空白が延々と表示されてしまいます。 この空白を表示させない方法はあるでしょうか? どうかよろしくお願いします。 もう1つ「EXCELの入力規則のリストについて。その1」という質問もさせていただいています。 併せてよろしくお願いします。

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

  • ベストアンサー
  • hakone
  • ベストアンサー率54% (40/73)
回答No.2

こんばんは。 範囲がA2:A20で、後半に""のセルがあるとしたら、元の値に =A2:INDEX(A2:A20,ROWS(A2:A20)-COUNTBLANK(A2:A20)) と書いてみてください。 OFFSET関数があまり好きではないので、このような書き方 をしましたが、↓もご参考に。

参考URL:
http://www2.odn.ne.jp/excel/waza/validation.html#SEC3
noname#13076
質問者

お礼

どうもありがとうございます。 できました! なるべく関数で行いたかったので嬉しいです!

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.1

確かにそのようになりますね。 空白を無視するもその意味ではないらしい。 以前「名前」付けによって解決する回答が出たような記憶があります。 どうしても回答がないと言う場合は、VBAですが Sub Test01() Range("G1:G18").Select '入力規則を設定する範囲 d = 1 While Not Cells(d, "B") = "" 'B列にあるリストを使うとき d = d + 1 Wend n = Trim(Str(d - 1)) '空白でない最下行を捉える With Selection.Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _ xlBetween, Formula1:="=$B$1:$B$" & n End With End Sub を実行すれば出来ました。上記コードはマクロの記録をとって、少し変えるだけです。

noname#13076
質問者

お礼

どうもありがとうございました。 VBAはとても難しそうですが、挑戦してみます。

関連するQ&A