• ベストアンサー

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などのような不連続な範囲をリスト化 する方法はありませんでしょうか? 宜しくご教示の程お願い致します。

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

  • ベストアンサー
  • myRange
  • ベストアンサー率71% (339/472)
回答No.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 '------------------------------------- 以上です。

nezoo
質問者

お礼

なるほど! 文字列そのものを取り出せば良かったんですね。 条件式に捉われ過ぎて、頭が石になってました。。 早速トライしてみます。ありがとうございましたm(__)m

関連するQ&A