|
▼ぱぴよん さん:
おはようございます。
>希望としては、xlBetween, Formula1:=のところで、下のように
>して、セルを参照させないようにしたいのですが、
どうしてですか?
せっかくのセルなのに・・・。
>何かよい方法はありますでしょうか?
どうしてもリストメンバーをコード内で指定したいのなら、
コンボボックスコントロールを使用する方法等を考えなければなりませんが、
入力規則のリストのセル参照でよいと思いますが・・・。
新規ブックに以下のコードをコピーして作動させてみてください。
・シートを最右端に追加し、追加したシートにリストメンバーサンプルを作成。
・作成シートを非表示
・リストメンバーを名前の定義で登録
・登録した名前を非表示
・最左端のシートのセルB1に入力規則を設定
なんて手順で設定を行っているコードです。
標準モジュールに
'=====================================================================
Sub 入力規則設定()
Dim sht As Worksheet
Dim nm As Name
Set sht = Worksheets.Add(after:=Worksheets(Worksheets.Count))
With sht
For idx = 1 To 50
.Cells(idx, 1).Value = String(10, Chr(-32096 + (idx - 1)))
Next
.Range("a1").EntireColumn.AutoFit
.Visible = xlSheetVeryHidden
End With
'↑最右端にシートを追加し、そこにサンプル作成。作成シートは 非表示に設定
Set nm = Names.Add("ListRange", "=" & sht.Range("a1:a50").Address(, , xlR1C1, True))
'名前の定義で作成サンプルセル範囲を登録
nm.Visible = False '定義した名前を非表示
With Worksheets(1).Cells(1, 2).Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=ListRange"
End With
Worksheets(1).Select
End Sub
こんな方法で良いのではないですか?
|
|