『Excel』の『データの入力制限』の設定って面倒なので『vba』でやってみる!
『Excel』で色々な入力欄を用意する場合、想定外の文字が入力される場合がある。
そんな時に想定した文字列しか入れられないようにする処理を『データの入力規制』。
これは、プルダウンから選択できるようにもできる優れもの。
設定は、以下の通り。
1.設定するセルを選択。
2.『データの入力制限』を選択。
3.表示された『データの入力制限』ダイアログの『設定』タブを選択。
『入力値の種類』を『リスト』を選択。
『元の値』に『1,2,3,4,5』と入力。
『OK』をクリック。
これで、他の文字が入らないセルができる。
こんな感じ。
一つなら良いが、個別のリストを持つ『データの入力規制』を
100個設定するとなると…
これは、なかなか大変…。
いや、マジで…。(汗)
やりましたので…。(泣)
なので、マクロで何とかしようと調べたら結構あった。
上記の設定をマクロで書くとこんな感じ。
'---------------------------------------
Sub test()
With Range("A1").Validation
.Delete
.Add Type:=xlValidateList, _
Operator:=xlEqual, _
Formula1:="1,2,3,4,5"
End With
End Sub
これを利用すれば、簡単に登録できる!
何と素晴らしい!
で、関数化するとこんな感じ。
これなら100ぐらいなんでもない!
----------------------------------------
Sub test()
DataEntryRestriction "A1", "1,2,3,4,5"
End Sub
'---------------------------------------
' セルに『データの入力規制』を登録
' 登録する場所
' 登録するリスト
' 使い方:DataEntryRestriction "A1", "1,2,3,4,5"
Public Function DataEntryRestriction(r As String, list As String)
With Range(r).Validation
.Delete
.Add Type:=xlValidateList, _
Operator:=xlEqual, _
Formula1:=list
End With
End Function
----------------------------------------
もし、物凄く複雑なリストでもループで回せば大丈夫だろう!
だが、この方法には、落とし穴があった…。
つづく!(笑)
| 固定リンク
« 『Excel』の『vlookup』だと検索対象の左側が表示対象にできない!ので出来るのを作ってみた。 | トップページ | 『Excel』の『データの入力制限』の設定を『vba』でやった時のトラップ!!! »
コメント