- ベストアンサー
Excel VBA 入力規則のリスト化
Excel VBAにて入力規則でリスト化しようと思っています。 通常セルを範囲指定によってリスト化する場合、 以下のようなコードになると思うのですが、 (セルA1にセルB1~B10の内容がリスト化される) Range("A1").Select With Selection.Validation .Add Type:=xlValidateList, Formula1:="=B1:B10" End With 例えばB1~B3, B6~B10などのような不連続な範囲をリスト化 する方法はありませんでしょうか? 宜しくご教示の程お願い致します。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
不連続範囲の場合Rangeオブジェクトを直接設定は指定できないので その範囲の値を取り出して文字列として設定してやるのはどうでしょう。 ●B1~B3、B6~B10をリスト一覧にして、A1にセットする場合 '---------------------------------- Sub Test() Dim R As Range Dim myList As String For Each R In Range("B1:B3,B6:B10") myList = myList & R.Value & "," Next R myList = Left(myList, Len(myList) - 1) With Range("A1").Validation .Delete .Add Type:=xlValidateList, Formula1:=myList End With End Sub '------------------------------------- 以上です。
お礼
なるほど! 文字列そのものを取り出せば良かったんですね。 条件式に捉われ過ぎて、頭が石になってました。。 早速トライしてみます。ありがとうございましたm(__)m