• ベストアンサー

エクセル 入力規則について

データの入力規則でリストを選んだときの”元の値”についてですが、同一シート内のどこかを選ぶと間違ってその元の値を消したりする危険性があるので、別のシートに元の値を書いておきたいのですが、そういうことは出来ないのでしょうか? また、VBAのコード上からリストを作成することは出来ないのでしょうか?

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

  • ベストアンサー
  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.1

初めのほうですが、「挿入」「名前」「定義」で 別シートの範囲を名前付けしておけば 元の値に「=名前」の様に付けた名前にすれば参照できます。

VitaminBB
質問者

お礼

回答ありがとうございます。 うまくいきました。

その他の回答 (2)

  • tuji3
  • ベストアンサー率42% (6/14)
回答No.3

 入力規則を設定したい範囲を選択し、以下を実行しますと自動的にリストが設定できます。なお以下のコードの、リスト範囲は任意のシートで名前ボックスで、範囲名を  alist と言う名前にしています。 '入力規則のリスト範囲を設定する Sub SetListData()  With Selection.Validation   .Delete   .Add Type:=xlValidateList, _      Formula1:="=alist"  End With End Sub

VitaminBB
質問者

お礼

回答ありがとうございます。 うまくいきました。

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

範囲に名前を付けると出来ます(#1のご回答) >VBAのコード上からリストを作成することは出来ないのでしょうか。 With Selection.Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _ xlBetween, Formula1:="=名前1" がVBAのコードですが (1)別シートということなら Formula1:="=・・を"Formula1:="=Sheet2!$d$3:$d$6"とするとエラーになります。 操作でも他のシートを選ばせてくれませんので不可能です。 (2)同一シートなら Formula1:="=$d$3:$d$6"で可能です。 (3)名前を使うと Formula1:="=名前1" で可能です。(例として名前1はSheet2!$a$2:$a$6の 場合)。 (エクセル2000)(1)は改良を願いたい点です。

VitaminBB
質問者

お礼

回答ありがとうございます。 うまくいきました。

関連するQ&A